我希望myCellTable
按qtyColumn
降序排序。那就是那些数量最多的人将会排在最前面。
myCellTable.getColumnSortList().push(qtyColumn);
myCellTable.getColumnSortList().push(qtyColumn);
//someone said we have to do the push twice. I did but it still sort Asc.
So I think the above code doesn't seem elegant
我只需要一个简单的代码,保证表格显示带有qty列的数据排序desc。
那么,如何用qty列排序desc显示表?
注意:我发现此public ColumnSortList.ColumnSortInfo(Column<?,?> column, boolean ascending)
但不知道如何使用它?
尝试了很多方法,但没有用。
myCellTable.getColumnSortList().push(new ColumnSortInfo(qtyColumn, false)); // not working
//this is also not working
ColumnSortInfo sortInfo = myCellTable.getColumnSortList().push(qtyColumn);
if (sortInfo.isAscending()) {
myCellTable.getColumnSortList().push(qtyColumn);
}
答案 0 :(得分:0)
解决方法:如果没有任何效果,则只需将已排序的List
按照初始排序方式传递到CellTable
或ListDataProvider
。
使用Collections.sort()
它非常适合我。
示例代码:(按名称降序排序)
Collections.sort(contactList,new Comparator<Contact>() {
@Override
public int compare(Contact o1, Contact o2) {
return o2.name.compareTo(o1.name);
}
});
// Create a data provider.
ListDataProvider<Contact> dataProvider = new ListDataProvider<Contact>(contactList);
// Connect the table to the data provider.
dataProvider.addDataDisplay(table);
查找下面的示例代码,以便对标题列的点击进行排序。
答案 1 :(得分:0)
这似乎有效,不确定是否有任何问题:
table.getColumnSortList().clear();
table.getColumnSortList().push(column);
table.getColumnSortList().push(column);
ColumnSortEvent.fire(table, table.getColumnSortList());
答案 2 :(得分:0)
尝试拨打
setVisibleRangeAndClearData(Range range, boolean forceRangeChangeEvent)
在单元格表上,第二个参数为true,在推送调用后立即强制执行RangeChangeEvent。