0

遅延ロードされたデータ テーブルがあり、ページ番号または行数を XHTML から ManagedBean に渡したいと考えています。どうすればできますか?これは私が使用しているデータ テーブルです。

<p:dataTable var="studyPlanList" value="#{editBean.lazyModel}"
        paginator="true" rows="5"
        paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
        rowsPerPageTemplate="5,10,15" selectionMode="single"
        selection="#{editBean.selectedStudyPlan}" id="studyPlanTable">
        <p:ajax event="rowSelect" listener="#{editBean.onRowSelect}"
            update=":studyPlanEditForm :relatedFileEditForm" />
        <p:column headerText="StudyPlan" sortBy="#{studyPlanList.name}"
            filterBy="#{studyPlanList.name}" width="100">
            <h:outputText value="#{studyPlanList.name}" />
        </p:column>
        <p:column headerText="StudyPlan Status" width="100">
            <h:graphicImage
                value="#{editBean.statusKeyMap.get(studyPlanList.status)}"
                style="float:center;height: 18px;width: 20px"
                title="#{editBean.statusTitleMap.get(studyPlanList.status)}" />
        </p:column>
        <p:column headerText="Messages" width="100">
            <ui:fragment rendered="#{studyPlanList.status eq 300}">
                <h:outputText style="font: italic;"
                    value="Please click Finish Editing to Finish SpokenTutorial" />
            </ui:fragment>
        </p:column>
    </p:dataTable>
4

1 に答える 1

2

LazyLoadingを使用する場合、BeanにはLazyDataModelの実装があり、メソッドをオーバーライドしていますload(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters)。このメソッド内からデータベースからコレクションをロードすることになっています。ここには、ページサイズと、取得する最初のレコードがあります(ページ番号はfirst / pageSize

于 2012-07-24T13:14:41.843 に答える