Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT中的可编程单元格表排序不工作_Gwt_Sorting_Celltable - Fatal编程技术网

GWT中的可编程单元格表排序不工作

GWT中的可编程单元格表排序不工作,gwt,sorting,celltable,Gwt,Sorting,Celltable,我使用ListDataProvider示例作为指导。根据提供的比较器,列的排序与预期的一样好。我试图通过编程应用示例中这一行中提到的排序: // We know that the data is sorted alphabetically by default. table.getColumnSortList().push(nameColumn); 这样做的目的是使单元格列显示为使用胡萝卜排序指示符进行排序。但是,底层数据没有排序。是否有一种方法可以让表实际应用排序程序。我想我可以将它与通过C

我使用ListDataProvider示例作为指导。根据提供的比较器,列的排序与预期的一样好。我试图通过编程应用示例中这一行中提到的排序:

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

这样做的目的是使单元格列显示为使用胡萝卜排序指示符进行排序。但是,底层数据没有排序。是否有一种方法可以让表实际应用排序程序。我想我可以将它与通过Collections.sort()对数据进行实际排序结合使用,但我希望避免这种情况,而是在一个地方进行排序。

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

您可以通过编程对列应用排序,只需很少的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;
}

这不起作用,我也没想到它会起作用。我从来没有对基础列表进行排序,只是将列推到排序列表上。排序是隐式设置的。更容易调用:ColumnSortEvent.fire(cellTable,cellTable.getColumnSortList());我缺少的配料是通风孔。火()。成功了。
ColumnSortInfo columnSortInfo = new ColumnSortInfo( sortColumn, sortDirection );
cellTable.getColumnSortList().push( columnSortInfo );
ColumnSortEvent.fire( cellTable, cellTable.getColumnSortList());