如何设置p:dataGrid将最后一页设置为默认显示页面

时间:2013-03-15 15:09:12

标签: jsf-2 primefaces

我有一个primefaces p:dataGrid组件,我想将最后一页设置为要显示的默认页面(不是第一页)。如何才能做到这一点 ?

我正在尝试生成动态p:dataGrid组件,同时单击上一个下一个自定义按钮。当我点击上一个时,我想转到数据网格的最后一页,而不是第一页。

非常感谢!

1 个答案:

答案 0 :(得分:3)

您需要检索辅助bean中的组件并手动设置要显示的第一行(您必须实际计算它)。根据第一行Primefaces计算将显示的页面。

首先向您的网页添加preRenderView事件监听器:

<f:metadata>
  <f:event listener="#{myBean.initDatagrid}" type="preRenderView"/>
</f:metadata>

并在backing bean中执行逻辑:

public void initDatagrid() {
  FacesContext fc = FacesContext.getCurrentInstance();
  if (!fc.isPostback()) {
    DataGrid dg = (DataGrid) fc.getViewRoot().findComponent("dataGrid_id");
    int firstRow = initFirstRow(); // set firstRow to first row on last page that should be displayed
    dg.setFirst(firstRow);
  }
}