Primefaces LazyModel datatable始终调用first=0 pageSize=10
我使用LazyDataModel在10页的表格中填充33个项目(一个长部件列表的子集,可以增长或收缩)。减速表如下所示Primefaces LazyModel datatable始终调用first=0 pageSize=10,datatable,indexing,primefaces,Datatable,Indexing,Primefaces,我使用LazyDataModel在10页的表格中填充33个项目(一个长部件列表的子集,可以增长或收缩)。减速表如下所示 <p:dataTable var="spare" value="#{sitePartController.selectParts}" paginator="true" lazy="true" currentPageReportTemplate="(Entries: {startRecord} - {endR
<p:dataTable var="spare" value="#{sitePartController.selectParts}" paginator="true" lazy="true"
currentPageReportTemplate="(Entries: {startRecord} - {endRecord} of {totalRecords}, Page: {currentPage}/{totalPages})"
paginatorTemplate="{CurrentPageReport}{FirstPageLink}{PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
rows="10" selection="#{sitePartController.selectedParts}"
paginatorAlwaysVisible="false"
dynamic="true"
>
分页工作很好,用33个项目填充currentPageTemplate,4个页面1-10等。当我按下链接时,所有分页输出都会正确更改(第2/4页等)。但是表中的数据没有改变,只是继续显示记录0-9。我的覆盖加载方法如下所示
selectParts = new LazyDataModel() {
@Override
public List<SitePart> load(int first, int pageSize, String string, boolean bln, Map map) {
return getSiteSpares(first,first+pageSize);
}
};
int totalRowCount = getSparesCount();
selectParts.setRowCount(totalRowCount);
selectParts=newlazydatamodel(){
@凌驾
公共列表加载(int-first、int-pageSize、字符串、布尔bln、映射){
返回getSiteSpares(第一个、第一个+页面大小);
}
};
int totalRowCount=getSparesCount();
选择parts.setRowCount(totalRowCount);
当我在load方法中停止调试时,无论选择哪个datatable分页链接;第一个始终为0,第二个页面为10(如预期)。如何让datatable发送正确的第一个索引,或者在过去6个小时的谷歌搜索和尝试各种替代方案过程中,我是否遗漏了一些基本信息。不确定是否会导致问题,但不应该是:
selectParts = new LazyDataModel<SitePart>(){
selectParts=newlazydatamodel(){
尝试将p:dataTable放入h:form中
<h:form id="form">
<p:dataTable>
</p:dataTable>
</h:form>