如何设置页面编号,每页主题数据表的行数?

时间:2017-06-29 17:00:19

标签: events primefaces jsf-2 datatable paginator

我正在使用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 个答案:

答案 0 :(得分:1)

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

设置p:dataTable属性multiViewState =&#34; true&#34; (参见演示enter image description here

然而,如果它似乎不起作用,请更改为@ViewScoped。同时确认您正在使用的primefaces版本。