我正在使用 LazyDataModel 填充一个表格,其中包含 33 个项目(一长串部件的子集,可以增长或缩小),每页 10 页。表格减速度如下
<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 个项目 4 页 1-10 等填充 currentPageTemplate。当我按下链接时,所有分页输出都会正确更改(第 2/4 页等)。然而表中的数据没有改变,只是继续显示记录0-9。我的重写 Load 方法如下。
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);
当我在加载方法中停止调试时,无论我选择哪个数据表分页链接; first 始终为 0,page 为 10(如预期)。我如何让数据表发送正确的第一个索引,或者我在过去 6 个小时的谷歌搜索和尝试各种替代方案中错过了一些基本的东西。
最佳答案
不确定它是否会导致问题,但不应该是:
selectParts = new LazyDataModel<SitePart>(){
关于datatable - Primefaces LazyModel 数据表始终要求first=0 pageSize=10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747315/