我有一个primefaces p:dataGrid
组件,我想将最后一页设置为要显示的默认页面(不是第一页)。如何才能做到这一点 ?
我正在尝试生成动态p:dataGrid
组件,同时单击上一个和下一个自定义按钮。当我点击上一个时,我想转到数据网格的最后一页,而不是第一页。
非常感谢!
答案 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);
}
}