【发布时间】: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 的新手,如果您能在这里提供帮助,请告诉我。
【问题讨论】:
-
问题中的版本信息“必填”。会阻止下面的答案
标签: events primefaces jsf-2 datatable paginator