2012-11-19 50 views
1

我使用的是richfaces 3.3.3我有一個rich:dataTable在另一個rich:dataTable裏面,它們都有一個rich:dataScroller,但內層不起作用:Richfaces:豐富的組件:dataScroller不起作用

<rich:dataTable id="dataTableVisibility" value="#{jsfGridUtenti.itemKeys}"       
    var="roleName" cellspacing="1" 
    cellpadding="1" border="1" 
    styleClass="tab" style="width:60%"             
    rowClasses="rdispari,rpari" 
    headerClass="headTab" rows="3" 
    rendered="#{jsfGridUtenti.renderPanelReportVisibility}"> 

    <f:facet name="footer"> 
     <rich:datascroller for="dataTableVisibility" 
      fastStep="10" pagesVar="pageCountCl" 
      pageIndexVar="pageIndexCl" 
      maxPages="9" renderIfSinglePage="false" 
      selectedStyle="font-weight:bold;"> 
     </rich:datascroller> 
    </f:facet> 
    <h:column> 
     <f:facet name="header"> 
      #{applicationMessages.ruolo} 
     </f:facet> 

     <a4j:commandLink reRender="reportUserVisibilityCompanyRoleClass" action="#{jsfGridUtenti.deleteAssociationRole(roleName)}">               
      <h:graphicImage styleClass="toolbarLabel" url="../resources/img/cancella.png" /> 
     </a4j:commandLink> 
     <rich:spacer height="1" width="8" /> 
     <h:outputText style="font-size:11px" value="#{roleName}"/>           
    </h:column> 
    <h:column>           
     <f:facet name="header"> 
      #{applicationMessages.companyAssociate} 
     </f:facet> 

     <h:column> 
      <rich:dataTable id="dataTableCompany" 
       var="company" value="#{jsfGridUtenti.findCompanyInHashMap(roleName)}"                           
       style="width:100%" rows="5" 
       rowClasses="rdispari,rpari" 
       columnsWidth="10%,10%,80%" 
       headerClass="headTab"> 

       <f:facet name="footer"> 
        <rich:datascroller for="dataTableCompany" 
         fastStep="10" pagesVar="pageCountCls" 
         pageIndexVar="pageIndexCls" 
         maxPages="9" ajaxSingle="true" 
         selectedStyle="font-weight:bold;" 
         renderIfSinglePage="false">               
        </rich:datascroller> 
       </f:facet> 

       <h:column> 
        <a4j:commandLink reRender="reportUserVisibilityCompanyRoleClass" action="#{jsfGridUtenti.deleteAssociationCompany(roleName,company)}"> 
         <h:graphicImage styleClass="toolbarLabel" url="../resources/img/cancella.png" /> 
        </a4j:commandLink>                       
       </h:column> 
       <h:column> 
        <a4j:commandLink immediate="true" action="#{jsfGridUtenti.setCompanyToShow(roleName,company)}"    
         reRender="showClassi,panelGridReport"> 
         <h:graphicImage styleClass="toolbarLabel" url="../resources/img/lente.png" />                
        </a4j:commandLink> 
       </h:column> 
       <h:column> 
        <h:outputText style="font-size:11px" value="#{company.label}"/> 
       </h:column> 
      </rich:dataTable>                                                                         
     </h:column> 
    </h:column> 
</rich:dataTable> 

現在,當我點擊外部rich:dataScroller它效果很好,而當我點擊內部沒有任何反應。我該如何解決?

+0

您不能在另一個內使用''。相反,使用[],如[官方文檔](http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_subTable.html)所示。 –

+0

不錯的解決方案謝謝! – Davide

+0

不客氣:)。 –

回答

1

這是一個已知問題。 rich:datascroller不支持嵌套迭代組件,如dataTablerepeat等。 有一個JIRA issue爲此。

你說過'沒有任何反應'嗎?你看看你的控制檯嗎?它不顯示這樣的警告嗎?

The requested page #2 isn't found in the model containing 1 pages. Paging is reset to page #1 
+0

此消息未出現在我兄弟的控制檯中。我使用'rich:subTable'來解決這個問題,謝謝你的回覆。 – Davide

+0

對不起,我想說「在我的瀏覽器的控制檯」。 :) – Davide

1

我得到了相同的警告信息,並解決它通過添加像一個會話變量:

<rich:dataScroller for="table" page="#{sessionBean.page}" /> 

在我的情況下,豆是無法訪問(由於範圍)之前,我改變了代碼。我在錯誤的軌道上,因爲我會預期警告/錯誤指出問題與表達語言有關。

相關問題