我在rich:dataTable
内使用a4j:repeat
。
每次dataTable Scroller都会从之前的dataTable滚动条索引值中引用索引。所以当前的dataTable有值,但它显示空表。
因为,
之前的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 :(得分: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}