0

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

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

非常感谢你!

4

1 回答 1

3

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

首先将preRenderView事件监听器添加到您的页面:

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

并在支持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);
  }
}
于 2013-03-15T15:25:14.050 回答