2012-06-07 28 views
2

我正在實現一個GWT CellTable,通過多個列動態分頁和排序。 基本信息可在CellTable Developer's Guide中找到。ColumnSorting AsyncDataProvider - 如何找出用戶想要排序的列?

但是,動態示例並未告知如何找出用戶想要排序的列(它只是按'name'列排序)。這對我來說還不夠,因爲我想讓用戶按不同的列進行排序。

我能想到的唯一的解決方案不是很優雅,就是跟蹤哪一列按升序排序(使用table.getColumnSortList(indexOfColumn).isAscending()),然後通過比較以下值來確定哪一個已被點擊每列(改變的那個可能是用戶點擊的)。

這涉及保持我的類中的信息,應該在CellTable中的某個地方可用!但是我找不到那些信息!

感謝您的任何幫助。

回答

3

我找到了答案。正如在com.google.gwt.user.cellview.client.ColumnSortList的javadoc中所解釋的:

包含表中列的排序歷史的有序列表。第0項是最近排序的列的ColumnSortInfo。

因此,知道哪些列最後排序,你只需要做:

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