我正在使用CellTable,它通过ListDataProvider提供数据。目前,用户可以对CellTable列进行排序,然后单击一行。单击一行会弹出单元格表旁边的独立编辑器。当用户单击“保存”时,代码将更新ListDataProvider中的员工,然后调用:
listDataProvider.refresh();
这样可行,但列重排是重置的。这是不可接受的,因为它重置了他们使用过的列排序,每次保存后都必须求助于列。有没有办法告诉CellTable在调用刷新时保持其当前列排序?
答案 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处理排序。这保持了排序顺序。我发布了代码,但我无法访问代码库。