JSF primefaces dataTable paginator 表格分页未能重新初始化问题解决
问题背景:
在工作中有这样一个需求:点击详情弹出其下关联的设备的列表弹窗,此时便需要在dialog弹窗中展示所查询的数据列表,故使用dataTable进行数据表格展示。但是此时便有一个问题出现,当我在前一条数据详情的dialog弹出页中选择页数后,关闭弹窗后再打开另一个详情的dialog弹出页,此时dataTable的页数并未从第一页开始查询,而是从上一次所选的页数查询。
解决方法:
可以在jsf页面,datatable的控件中用binding直接将控件绑定到后台页面。然后查询的时候,在后台页面重置datatable到第一页。
xhtml中:
<p:dataTable id="deviceDataTb" var="bxDeviceConnectStatus" emptyMessage="无记录" rowIndexVar="ite"
lazy="true" binding="#{bxStationConnectStatusController.resultTable}"
后台controller中:
首先添加绑定属性
private DataTable resultTable;//不要忘了setter、getter
在绑定方法中手动设置页数从第一页开始。
public void showDevice() {
//重新从第一页开始
resultTable.setFirst(0);
getDevice();
}