2013-08-20 75 views
0

我在a4j:repeat裏面使用rich:dataTable。每當dataTable Scroller引用前一個dataTable滾動索引值中的索引時。所以當前的dataTable有值,但它顯示空表。rich:dataScroller索引引用上一個dataTable滾動索引裏面的a4j:重複

因爲,

以前的dataTable列表大小是200 以前dataTable的滾動指數7

當前的DataTable列表大小爲5

<a4j:repeat value="#{Bean.outerTOList}" var="sampleValue"> 

     <rich:dataTable id="dataTable" 
         var="innerTo" 
         rows="5" 
         value="#{sampleValue.sampleInnerTOList}" > 
      <f:facet name="header"> 
       <rich:column> 
        <h:outputText value="Header"/> 
       </rich:column> 
      </f:facet> 


      <rich:column> 
       <h:outputText value="#{innerTo.name}"/> 
      </rich:column> 


      <f:facet name="footer"> 
       <rich:datascroller id="dataTableScrollerId" 
            ajaxSingle="false" maxPages="3"                  
            page="1"> 
       </rich:datascroller> 
      </f:facet> 

     </rich:dataTable> 
    </a4j:repeat> 
+0

您可以發佈託管Bean代碼嗎? – Crferreira

+0

@Crferreira它是正常的。我直接使用resultTOList。 – newuser

回答

1

我認爲你必須改變<ui:repeat>複製到(JSTL)<c:forEach>(請參見http://www.crazysquirrel.com/computing/java/jsp/jstl-forEach.jspx),因爲它有另一個生命週期,並且在此方案中使用ui:repeat的實現不起作用。

這樣做之後,您可能還需要某種「鑑別器」用於您的ID,因爲您無法將所有表格組件命名爲相同。你將不得不使用像id =「datatable0」,... id =「datatable1」等。您可以使用c:forEach的varStatus="status"屬性來執行此操作。它有一個屬性,您可以用作計數器:#{status.index}

+0

感謝您的回覆。它工作正常。 – newuser