Сброс состояния 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);
однако это не сбросило отображаемые коды в таблице для меня. Он все еще отображал ранее отфильтрованные результаты, так как я установил filteredValue
атрибут my datatable для поля в бобе области видимости. Я исправил эту проблему, установив my до value
поле, устанавливающее текущие отфильтрованные результаты в полный набор данных.
private DataTable filtervalue;
getter and setter of filtervalue ..........
call resetValue(); method on datatable
as filtervalue.resetValue();
надеюсь, что он работает