我正在实现一个GWT CellTable,它通过动态分页和多列排序。 基础知识可以在CellTable Developer's Guide中找到。
但是,动态示例并没有说明如何找出用户想要排序的列(它只是按“名称”列排序)。这在我的情况下是不够的,因为我想允许用户按不同的列进行排序。
我能想到的唯一不太优雅的解决方案是跟踪哪个列按升序排序(使用table.getColumnSortList(indexOfColumn).isAscending()
),然后通过比较确定哪个列被点击了每列的值(更改的值可能是用户单击的值)。
这涉及将信息保存在我的课程中,这些信息应该在CellTable的某个地方可用!但我找不到那些信息!
感谢您的帮助。
答案 0 :(得分:3)
我找到了答案。正如com.google.gwt.user.cellview.client.ColumnSortList
的javadoc所解释的那样:
包含表格中列的排序历史记录的有序列表。第0项是最近排序列的ColumnSortInfo。
因此,要知道上次排序的列,您只需执行以下操作:
ColumnSortInfo info = table.getColumnSortList().get(0);
Column<Type> sortByColumn = info.getColumn();