GWT中的Programatic CellTable排序无法正常工作

Ste*_*bbi 5 sorting gwt celltable

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

// We know that the data is sorted alphabetically by default.
table.getColumnSortList().push(nameColumn);
Run Code Online (Sandbox Code Playgroud)

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

小智 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;
}
Run Code Online (Sandbox Code Playgroud)

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

ColumnSortInfo columnSortInfo = new ColumnSortInfo( sortColumn, sortDirection );
cellTable.getColumnSortList().push( columnSortInfo );
ColumnSortEvent.fire( cellTable, cellTable.getColumnSortList());
Run Code Online (Sandbox Code Playgroud)