Announcement

Collapse
No announcement yet.

TableDataProvider auf Tabelle legen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TableDataProvider auf Tabelle legen?

    Hallo,

    ich versuche durch die Auswahl aus einer listBox die gewählte Tabelle der DB auf mein table component zu legen.

    default sieht es so aus

    <code>
    <ui:body binding="#{Page1.body1}" id="body1" style="-rave-layout: grid">
    <ui:form binding="#{Page1.form1}" id="form1">
    <ui:listbox binding="#{Page1.list}" id="list" items="#{Page1.listDefaultOptions.options}"
    onChange="common_timeoutSubmitForm(this.form, 'list');" style="left: 48px; top: 72px; position: absolute" valueChangeListener="#{Page1.list_processValueChan ge}"/>


    <ui:table augmentTitle="false" binding="#{Page1.table}" id="table" style="position: absolute; left: 192px; top: 96px" title="Table" width="600">

    <ui:tableRowGroup binding="#{Page1.tableRowGroup1}" id="tableRowGroup1" rows="5" sourceData="#{SessionBean1.personDataProvider}" sourceVar="currentRow">

    <ui:tableColumn binding="#{Page1.tableColumn1}" headerText="PERSONID" id="tableColumn1" sort="PERSON.PERSONID">
    <ui:staticText binding="#{Page1.staticText1}" id="staticText1" text="#{currentRow.value['PERSON.PERSONID']}"/>
    </ui:tableColumn>

    <ui:tableColumn binding="#{Page1.tableColumn2}" headerText="NAME" id="tableColumn2" sort="PERSON.NAME">
    <ui:staticText binding="#{Page1.staticText2}" id="staticText2" text="#{currentRow.value['PERSON.NAME']}"/>
    </ui:tableColumn>

    <ui:tableColumn binding="#{Page1.tableColumn3}" headerText="JOBTITLE" id="tableColumn3" sort="PERSON.JOBTITLE">
    <ui:staticText binding="#{Page1.staticText3}" id="staticText3" text="#{currentRow.value['PERSON.JOBTITLE']}"/>
    </ui:tableColumn>

    <ui:tableColumn binding="#{Page1.tableColumn4}" headerText="FREQUENTFLYER" id="tableColumn4" sort="PERSON.FREQUENTFLYER">
    <ui:staticText binding="#{Page1.staticText4}" id="staticText4" text="#{currentRow.value['PERSON.FREQUENTFLYER']}"/>
    </ui:tableColumn>

    <ui:tableColumn binding="#{Page1.tableColumn5}" headerText="LASTUPDATED" id="tableColumn5" sort="PERSON.LASTUPDATED">
    <ui:staticText binding="#{Page1.staticText5}" id="staticText5" text="#{currentRow.value['PERSON.LASTUPDATED']}"/>
    </ui:tableColumn>

    </ui:tableRowGroup>
    </ui:table>
    </code>

    meine methode in page1.jsp für die listBox sieht so aus.

    <code>
    public void list_processValueChange(ValueChangeEvent event) {


    int a = Integer.parseInt((String)list.getSelected());
    error("selected return = "+ a);

    if(a == 2){

    tableRowGroup1.setSourceData(getSessionBean1().get HotelDataProvider());


    //dataProvider.refresh();
    //dataProvider.commitChanges();

    }else error("Fehler");
    }
    <code>

    ich bekomme dann

    Caused by: org.apache.jasper.JasperException: java.lang.IllegalArgumentException: PERSON.PERSONID

    was mache ich falsch?

    MFG

    SubSonniC

  • #2
    Hallo,

    prüfe zuerst ob der DataProvider mit dem entsprechenden TableRowSet gefüllt ist.
    Ist PERSON.PERSONID im SQL-Querystring des RowSets enthalten ?

    Hoffe, ich konnte helfen.

    VG

    HJ. Alles

    Comment

    Working...
    X