2011-09-06 9 views
1

での作業ではありません。このページ内でp:datatableコードを削除する場合、ドロップダウンのvalueChangeListenerを呼び出すことができますが、p:datatableがxhtmlに存在する場合は、呼び出すことができません。ドロップダウンのvalueChangeListenerのは、私がデータテーブルとXHTML内のドロップダウンを持ってprimefacesデータテーブル

XHTMLコード

<ui:define name="content"> 
    <f:view> 
     <h:form id="accountSummaryForm" prependId="false"> 
      <h:selectBooleanCheckbox id="checkbox" value="true" /> 
      <h:outputLabel value="Show certificates preview on sumit"></h:outputLabel> 
      <h:outputLabel value="Show certificates preview on sumit"></h:outputLabel> 
      <h:outputText align="left" 
       value="Value is #{reqSummaryHandler.certNumber}" /> 
      <p:dataTable id="reqActList" paginatorAlwaysVisible="true" 
       var="reqInfo" value="#{reqSummaryHandler.certActListModel}" 
       paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
       paginator="true" rows="#{label.accountList_defaultNumberOfRows}" 
       selectionMode="single" 
       rowsPerPageTemplate="#{label.accountList_numberOfRows}" width="60%"> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="#{label.certNumber}" /> 
        </f:facet> 
        <h:outputText align="left" value="#{reqInfo.certNumber}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Version" /> 
        </f:facet> 
        <h:outputText align="left" value="#{reqInfo.certVersionNbrString}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Insured" /> 
        </f:facet> 
        <ui:repeat value="#{reqInfo.clientList}" var="insuredInfo"> 
         <h:outputText align="left" 
          value="#{insuredInfo.generalPartyInfo.nameInfo.commName.commercialName}" /> 
        </ui:repeat> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Certificate Holder" /> 
        </f:facet> 
        <ui:repeat value="#{reqInfo.certificateHolderInfoList}" 
         var="certHoldInfo"> 
         <h:outputText align="left" 
          value="#{certHoldInfo.additionalInterest.generalPartyInfo.nameInfo.commName.commercialName}" /> 
        </ui:repeat> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Activity Performed" /> 
        </f:facet> 
        <h:outputText align="left" value="#{reqInfo.effectiveTypeCd}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Certificate Status" /> 
        </f:facet> 
        <h:outputText align="left" value="#{reqInfo.statusCd}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Third Party" /> 
        </f:facet> 
        <h:outputText align="left" 
         value="#{reqInfo.certWordingEndorsementInd}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Manual Form" /> 
        </f:facet> 
        <h:outputText align="left" value="#{reqInfo.manualEntryInd}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Manual Addendum" /> 
        </f:facet> 
        <h:outputText align="left" value="#{reqInfo.mnlAddendumInd}" /> 
       </p:column> 
       <p:column style="text-align:center;" filterBy="" sortBy="" 
        width="5%"> 
        <f:facet name="header"> 
         <h:outputLabel value="Path" /> 
        </f:facet> 

        <p:cellEditor> 
         <f:facet name="output"> 
          <h:outputText align="left" value="#{reqInfo.routePathCd}" 
           readonly="true" /> 
         </f:facet> 
         <f:facet name="input"> 
          <h:selectOneMenu value="#{reqInfo.routePathCd}"> 
           <f:selectItem itemLabel="Issue Distribute" itemValue="A" /> 
           <f:selectItem itemLabel="Send to Underwriter" itemValue="B" /> 
           <f:selectItem itemLabel="Issue Do Not Distribute" 
            itemValue="C" /> 
          </h:selectOneMenu> 
         </f:facet> 
        </p:cellEditor> 
        <p:rowEditor rendered="#{reqInfo.statusCd eq 'A'}" /> 
       </p:column> 
       <p:column style="text-align:center;white-space: normal;nowrap"> 
        <f:facet name="header"> 
         <h:outputLabel value="Action" /> 
        </f:facet> 
        <ui:repeat value="#{reqInfo.availableFunctions.functionNameArray}" 
         var="linkInfo"> 
         <p:commandLink id="View" value="#{linkInfo}" ajax="false" /> 
         <br /> 
        </ui:repeat> 
       </p:column> 
      </p:dataTable> 
      <p:spacer width="50" height="0"></p:spacer> 
      <p:spacer width="50" height="0"></p:spacer> 
      <p:spacer width="3" height="0"></p:spacer> 
      <p:spacer width="3" height="0"></p:spacer> 
      <p:spacer width="3" height="0"></p:spacer> 
      <p:spacer width="3" height="0"></p:spacer> 
      <p:spacer width="3" height="0"></p:spacer> 
      <p:spacer width="3" height="0"></p:spacer> 
      <h:outputLabel value="Assign Path" style="font-weight:bold" /> 
      <p:spacer width="5" height="10" /> 
      <h:selectOneMenu id="dropdown2" 
       valueChangeListener="#{reqSummaryHandler.DoPathProcessing1}" 
       value="#{reqSummaryHandler.certNumber}" onchange="submit();"> 
       <f:selectItem itemLabel="Issue Distribute" itemValue="A" /> 
       <f:selectItem itemLabel="Send to Underwriter" itemValue="B" /> 
       <f:selectItem itemLabel="Issue Do Not Distribute" itemValue="C" /> 
      </h:selectOneMenu> 
     </h:form> 
    </f:view> 
</ui:define> 

とリスナーのコードは

public void DoPathProcessing1(ValueChangeEvent event) { 
    String newValue = (String) event.getNewValue(); 
    System.out.println("Path" 
      + certActListModel.getRowData().getRoutePathCd()); 
    certActListModel.getRowData().setRoutePathCd(newValue); 

    System.out.println("value is " + newValue); 
} 

それが機能しない理由任意のアイデアはありますか?

私はあなたが使用しているJSF-API-2.0.3とprimefaces-2.2.1

答えて

1

を使用しています両方valueとコンポーネントのドロップダウンのvalueChangeListener属性。なぜあなたはこれをやりますか?

ちょうどあなたの管理BeanにsetCertNumber(String certNumber)を呼び出しますvalue="#{reqSummaryHandler.certNumber}を持ちます。どうしてこのコードをセッターメソッドに入れないのですか?そのことを私はvalueChangeListenerのを使用していない場合、私はデータテーブルを更新する方法を列values.Thenを更新できるようにドロップダウンが、変更値際のDataTable:

+0

おかげでmaple_shaft ...しかし、私は、pを更新する必要があります。 – C4CodeE4Exe

+0

だけsetCertNumber' 'へ...' certActListModel.getRowData()この行を追加しますsetRoutePathCd(newValueにすること); ' –

+0

私が述べた同じ行を追加しようとしたが、初めての画面負荷一度、私はで値を変更ドロップダウンで、 "B"を選択しても、変更された値が列に "A"として表示されます。これが初めて動作しますが、私は再びドロップダウン値を変更した場合、それはtable.Whileのデバッグに変更されていない私は、このexceptoinを取得しています - javax.faces.model.NoRowAvailableException – C4CodeE4Exe

関連する問題