ColumnSort with AsyncDataProvider语言 - 如何找出用户想要排序的列



我正在实现一个GWT单元格表,其中包含按多列动态分页和排序的功能。基础知识可以在 CellTable 开发人员指南中找到。

但是,动态示例没有说明如何找出用户要按哪一列进行排序(它只是按"name"列排序)。就我而言,这还不够,因为我想允许用户按不同的列进行排序。

我能想到的唯一解决方案不是很优雅,是跟踪哪一列按升序排序或不按升序排序(使用 table.getColumnSortList(indexOfColumn).isAscending() ),然后通过比较每列的值来确定单击了哪一列(更改的可能是用户单击的)。

这涉及在我的类中保留应该在 CellTable 中某个位置可用的信息!但是我找不到这些信息!

感谢您的任何帮助。

我找到了答案。正如 javadocs for com.google.gwt.user.cellview.client.ColumnSortList 中所解释的那样:

包含表中列的排序历史记录的有序列表。第 0 项是最近排序的列的列排序信息。

因此,要知道上次排序的列,您只需执行以下操作:

ColumnSortInfo info = table.getColumnSortList().get(0);
Column<Type> sortByColumn = info.getColumn();  

最新更新