rich:dataScroller索引引用a4j:repeat中的上一个dataTable滚动器索引



我在a4j:repeat内部使用rich:dataTable。每次dataTable滚动程序引用上一个dataTable滚动器索引值中的索引时。所以当前的dataTable有值,但它显示的是空表。

因为,

以前的dataTable列表大小为200。以前的数据表滚动条索引是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>

我认为您必须将<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}

相关内容

最新更新