Сброс состояния PrimeFaces DataTable (фильтр, сортировка, подкачка)

Я хотел бы сбросить фильтр, сортировку и состояние подкачки объекта PrimeFaces DataTable. К сожалению, нет простого способа сделать это. Особенно трудно восстановить состояние сортировки.

то, что я делал до сих пор:

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.

4 ответов


наконец, я нашел решение, скрытое в этом образце http://www.primefaces.org/showcase/ui/data/datatable/columns.xhtml на вкладке ColumnsView.java:

table.setValueExpression("sortBy", null);

dataTable.setSortBy(null);

Я использую PrimeFaces 4.0


сначала я сбрасываю состояние сортировки, как и в других ответах:

dataTable.setSortBy(null);

однако это не сбросило отображаемые коды в таблице для меня. Он все еще отображал ранее отфильтрованные результаты, так как я установил filteredValue атрибут my datatable для поля в бобе области видимости. Я исправил эту проблему, установив my до value поле, устанавливающее текущие отфильтрованные результаты в полный набор данных.


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

надеюсь, что он работает