ColumnSorting with AsyncDataProvider - 如何找出用户想要排序的列?

时间:2012-06-07 03:25:29

标签: gwt celltable

我正在实现一个GWT CellTable,它通过动态分页和多列排序。 基础知识可以在CellTable Developer's Guide中找到。

但是,动态示例并没有说明如何找出用户想要排序的列(它只是按“名称”列排序)。这在我的情况下是不够的,因为我想允许用户按不同的列进行排序。

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

这涉及将信息保存在我的课程中,这些信息应该在CellTable的某个地方可用!但我找不到那些信息!

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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

  

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

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

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