Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 重置PrimeFaces数据表状态(筛选、排序、分页)_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 重置PrimeFaces数据表状态(筛选、排序、分页)

Jsf 2 重置PrimeFaces数据表状态(筛选、排序、分页),jsf-2,primefaces,Jsf 2,Primefaces,我想重置PrimeFaces数据表的筛选、排序和分页状态。不幸的是,没有简单的方法可以做到这一点。尤其是重置排序状态很困难 到目前为止,我所做的是: DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent(componentId); if (dataTable != null) { dataTable.setSortOrder("ascending");

我想重置PrimeFaces数据表的筛选、排序和分页状态。不幸的是,没有简单的方法可以做到这一点。尤其是重置排序状态很困难

到目前为止,我所做的是:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent(componentId);
if (dataTable != null) {
    dataTable.setSortOrder("ascending");  // reset sortOrder
    dataTable.setFirst(0);                // reset page
    dataTable.setFilteredValue(null);     // reset filter
    dataTable.setFilters(null);
}

我正在使用PrimeFaces 3.4.1。

最后,我找到了解决方案,隐藏在选项卡
ColumnsView.java的示例中:

table.setValueExpression("sortBy", null);

我使用的是PrimeFaces 4.0,首先我重置了排序状态,与其他答案一样:

dataTable.setSortBy(null);
但是,这并没有为我重置表中显示的代码。它仍然显示以前过滤的结果,因为我已经将datatable上的
filteredValue
属性设置为视图范围bean中的字段。我通过将我的
filteredValue
字段设置为
value
字段,将当前过滤结果设置为完整的数据集,解决了这个问题

private DataTable filtervalue;
getter and setter of filtervalue ..........
call resetValue(); method on datatable
as  filtervalue.resetValue();

希望它能在LazyDataModel加载中工作,我用以下代码调用该方法:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:dataTableItem");
dataTable.setFirst(0);
dataTable.reset();
dataTable.setSortBy(null);

与问题(关于排序)中已有的内容相比,这是一个怎样的改进。。。。我可以用Primefaces 5.3 dataTable.setValueExpression(“sortBy”,null)和dataTable.setSortBy(null)来确认这一点;共同导致一个列标题中没有显示排序的数据表。@alfonx知道PrimeFaces 7.0上的情况吗?我可以用PrimeFaces 5.3 DataTable.setValueExpression(“sortBy”,null)和DataTable.setSortBy(null)确认这一点;一起产生的数据表在列标题中没有显示排序alfonx刚刚编辑过这是一个很好的解决方案,而且是一个更完整的解决方案,特别是在数据表未绑定到后端的情况下。
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:dataTableItem");
dataTable.setFirst(0);
dataTable.reset();
dataTable.setSortBy(null);