作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码
taskDataProvider = new ListDataProvider<TaskHeader>();
taskDataProvider.addDataDisplay(taskTable);
ListHandler<TaskHeader> columnSortHandler = new ListHandler<TaskHeader>(
taskDataProvider.getList());
taskTable.addColumnSortHandler(columnSortHandler);
//Some other code that modifies the list in taskDataProvider
当我单击列标题时,ColumnSortEvent 被触发,但经过检查我可以看到 columnSortHandler 中的列表是空的。对 taskDataProvider 列表所做的任何修改都没有反射(reflect)在 columnSortHandler 中。我错过了什么吗?
最佳答案
例子here似乎正是您要找的东西。从您展示的代码来看,我会说您缺少比较器
columnSortHandler.setComparator(yourColumn,
new Comparator<TaskHeader>() {
public int compare(TaskHeader t1, TaskHeader t2) {
return o1.field1.compareTo(o2.field1);
}
});
此外,在向 dataProvider 添加或删除数据时,请确保您没有设置新列表,而是添加或删除数据。否则你的 dataProvider 和 listHandler 将不会使用同一个列表..
不要:
taskDataProvider.setList(newList);
做:
taskDataProvider.getList().add(newItem);
关于GWT 如何使用 ListHandler 和 ListDataProvider 对 CellTable 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436610/
我有以下代码 taskDataProvider = new ListDataProvider(); taskDataProvider.addDataDisplay(taskTable); ListH
我是一名优秀的程序员,十分优秀!