如何设置primefaces数据表的页码,每页行数?

Posted

技术标签:

【中文标题】如何设置primefaces数据表的页码,每页行数?【英文标题】:How to set page number, rows per page of primefaces datatable? 【发布时间】:2017-12-03 12:08:56 【问题描述】:

我正在使用 primefaces 数据表向用户显示单选按钮进行选择,现在当页面加载时,表格默认显示第 1 页,每页显示 25 行[这是预期的],我现在想要的是如果用户设置 25每页的行数[按下拉菜单],然后进入第 4 页并选择用户,提交表单,现在当页面刷新时,我希望用户看到带有前一页(第 4 页而不是第 1 页)和相同编号的表格。每页的行数(25 而不是 10)。

粘贴在我的数据表下方。 [我的 bean 是 ViewAccessscoped]。

 <p:dataTable id="tableid" var="result"
                             styleClass="supertable top75"
                             paginatorTemplate="RowsPerPageDropdown CurrentPageReport LastPageLink NextPageLink PageLinks PreviousPageLink FirstPageLink"
                             value="#bean.datamodel"
                             tableStyleClass="pdatatable-table" rows="10"
                             rowsPerPageTemplate="10,25,50,100" paginator="true"
                             emptyMessage="No Users are available"

我尝试通过在我的 bean 中使用以下代码来设置数据表的“第一个”属性,但没有成功,这就是我尝试过的

在 xhtml 的事件下方添加

 <p:ajax event="page" listener="#bean.onPageChange"></p:ajax>

bean 的方法

public void onPageChange(PageEvent event)

   pageindex=event.getPage();
   final DataTable  dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("loginasform:homeDataTable");
   dataTable.setFirst(pageindex); 

我确实收到了 bean 中的值,但它仍然显示默认页面和每页的行数。

我是 JSF 和 Primefaces 的新手,如果您能在这里提供帮助,请告诉我。

【问题讨论】:

问题中的版本信息“必填”。会阻止下面的答案 【参考方案1】:

恢复数据表的状态(就像刷新前一样)...

设置p:dataTable属性multiViewState="true"(参考demoTable State)

但如果它似乎不起作用,请更改为 @ViewScoped。还要确认您正在使用的 primefaces 版本。

【讨论】:

嘿丹尼斯,我认为该属性适用于 primefaces 6 并且我有 primefaces 5 ,我实际上已经接近得到我想要的东西,一旦我确认结果就会发布答案 确实最好总是在答案中发布版本信息

以上是关于如何设置primefaces数据表的页码,每页行数?的主要内容,如果未能解决你的问题,请参考以下文章

水晶报表怎么统计每页的条数

您能否将 Vuetify 数据表的“每页行数”“全部”值从默认的“-1”更改?

请教word高手如何设置页面设置中的每行的字数和行数?

v-data-table 中“每页行数”菜单的位置计算错误

分页查询

分页查询