10

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

5 に答える 5

7

最後に、このサンプルhttp://www.primefaces.org/showcase/ui/data/datatable/columns.xhtmlのタブに隠されている解決策を見つけましたColumnsView.java:

table.setValueExpression("sortBy", null);
于 2013-08-19T11:55:29.910 に答える
3
dataTable.setSortBy(null);

私はPrimeFaces 4.0を使用しています

于 2013-10-04T07:08:05.817 に答える
3

LazyDataModel ロード内で、次のコードを使用してメソッドを呼び出します。

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:dataTableItem");
dataTable.setFirst(0);
dataTable.reset();
dataTable.setSortBy(null);
于 2019-06-25T19:22:39.320 に答える
0

最初に、他の回答のようにソート状態をリセットします。

dataTable.setSortBy(null);

ただし、これは表に表示されているコードをリセットしませんでした。filteredValueデータテーブルの属性をビュー スコープ Bean のフィールドに設定したため、以前にフィルター処理された結果がまだ表示されていました。filteredValueフィールドをvalueフィールドに設定し、現在のフィルタリングされた結果を完全なデータセットに設定することで、この問題を修正しました。

于 2014-10-01T14:38:37.477 に答える