我在搜索实用程序中使用带有分页器的 dataTable 组件,效果很好,但是在将分页器页面重置为第一页时遇到问题。例如,您在分页器的第 6 页上执行新搜索,dataTable 会重新加载新数据,但页码未重置为 1,它仍为 6。
我正在使用 PF 3.4.2。任何想法?
我在搜索实用程序中使用带有分页器的 dataTable 组件,效果很好,但是在将分页器页面重置为第一页时遇到问题。例如,您在分页器的第 6 页上执行新搜索,dataTable 会重新加载新数据,但页码未重置为 1,它仍为 6。
我正在使用 PF 3.4.2。任何想法?
将以下 javascript 添加到更新 DataTable 模型的操作中:
onclick="myWidgetVar.getPaginator().setPage(0);"
其中myWidgerVar是 DataTable 的 WidgetVar。
确保 DataTable 具有 WidgetVar 集。有关详细信息,请参阅Optimus Prime 的这篇文章。
以上导致网格调用以使用现有过滤器刷新数据。如果您明确希望网格从第一页加载新数据,您可以在服务器端重置数据表
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("dialogSelectionForm:carSelectDialogTable");
dataTable.reset();
我用 widgetVarDataTable.clearFilters(); 解决了 在 primefaces 3.5 和 PF('widgetVarDataTable').clearFilters(); 在素面 5.0
我使用 PF('dataTableWidgetVar').paginator.setPage(0); 解决了我的问题 在 Primefaces 6.0 中
我必须在后端解决这个需求。为了在不执行某种“重复刷新”的情况下解决问题,我确实实现了这个:
<p:commandButton ... update="dataTable" actionListener="#{myController.bindingDataTable.setFirst(0)}" oncomplete="someClientJS();" ... />
此代码假定dataTable
前端中的 绑定到后端引用变量myController.bindingDataTable
。在刷新ActionListener
之前执行,因此此时分页设置为“0”作为第一行/记录的值(因此也是第一页)。dataTable