0

rich:dataTablea4j: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>
4

1 回答 1

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}

于 2013-08-20T10:51:47.633 回答