GWT CellTable - 在ListDataProvider刷新后重置列排序

时间:2014-05-02 17:59:38

标签: gwt

我正在使用CellTable,它通过ListDataProvider提供数据。目前,用户可以对CellTable列进行排序,然后单击一行。单击一行会弹出单元格表旁边的独立编辑器。当用户单击“保存”时,代码将更新ListDataProvider中的员工,然后调用:

listDataProvider.refresh();

这样可行,但列重排是重置的。这是不可接受的,因为它重置了他们使用过的列排序,每次保存后都必须求助于列。有没有办法告诉CellTable在调用刷新时保持其当前列排序?

2 个答案:

答案 0 :(得分:1)

如果要在刷新后恢复排序顺序,则需要调用ColumnSortEvent.fire(dataGrid, dataGrid.getColumnSortList());。我认为它应该与CellTable一样。

这是我们刷新DataGrid的方式:

selectionModel.clear(); // SingleSelectionModel
dataList.clear(); // List<Data>
dataList.addAll(newData); // List<Data>
dataProvider.flush(); // ListDataProvider<Data>
dataProvider.refresh();
ColumnSortEvent.fire(dataGrid, dataGrid.getColumnSortList()); // DataGrid<Data>

答案 1 :(得分:0)

结束在列排序上添加侦听器,并在代码中对列表进行排序,而不是允许CellTable处理排序。这保持了排序顺序。我发布了代码,但我无法访问代码库。