0

の中で使用しrich:dataTableていa4j:repeatます。dataTable スクローラーが以前の 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 に答える