我有一个延迟加载的数据表,我想将页面编号或行数从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>
答案 0 :(得分:2)
如果你使用LazyLoading,那么在你的bean中你有一个LazyDataModel的实现,你重写了方法load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters)
。你应该从这个方法里面加载数据库中的集合,这里你有页面大小,并且要检索的第一个记录(页码是first / pageSize
)