GET中的程序化CellTable排序不起作用

时间:2012-12-06 21:11:18

标签: gwt sorting celltable

我正在使用ListDataProvider示例here作为指南。根据提供的比较器,列按预期排序。我试图以编程的方式应用这个例子中提到的排序:

// We know that the data is sorted alphabetically by default.
table.getColumnSortList().push(nameColumn);

这样做,是否使细胞列看起来与胡萝卜排序指示符一起排序。但是,基础数据未排序。有没有办法让表格实际应用排序。我想我可以将它与通过Collections.sort()实际排序数据结合使用,但我想避免这种情况,并在一个地方进行。

2 个答案:

答案 0 :(得分:10)

您可以使用很少的exta代码以编程方式对列进行排序。以下代码片段可以做到 -

当您将数据设置到cellTable时,您必须按照以下代码初始化ListHandler -

cellTable.addColumnSortHandler( createColumnSortHandler() );

private ListHandler<T> createColumnSortHandler()
{
     final ListHandler<T> listHandler = new ListHandler<T>(listDataProvider.getList());
     listHandler.setComparator( sortColumn, comparator );
     return listHandler;
}

当你想要解雇SortEvent时,执行以下代码片段 -

ColumnSortInfo columnSortInfo = new ColumnSortInfo( sortColumn, sortDirection );
cellTable.getColumnSortList().push( columnSortInfo );
ColumnSortEvent.fire( cellTable, cellTable.getColumnSortList());

答案 1 :(得分:0)

你必须再次在网格上调用setData .....