我正在使用ListDataProvider示例here作为指南。根据提供的比较器,列按预期排序。我试图以编程的方式应用这个例子中提到的排序:
// We know that the data is sorted alphabetically by default.
table.getColumnSortList().push(nameColumn);
这样做,是否使细胞列看起来与胡萝卜排序指示符一起排序。但是,基础数据未排序。有没有办法让表格实际应用排序。我想我可以将它与通过Collections.sort()实际排序数据结合使用,但我想避免这种情况,并在一个地方进行。
答案 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 .....