我有一个关于网格小部件的问题。这个小部件也可以在普通的GWT中通过"GWT-Widgets 7.4.3“下载获得。
但是,当您对列执行"setSortable(true)“时,唯一发生的事情是当单击它时,在表头中绘制一个排序方向的箭头。表本身不会重新排序。
此外,在具有列和方向的网格上执行排序方法也没有任何效果。
在vaadin https://vaadin.com/book/-/page/components.grid.html一书中,我提到了以下内容:“容器数据源必须支持排序。至少,它必须实现Container.Sortable。”
在Vaadin的书中,我看到使用了BeanItemContainer,但在"GWT-Widgets 7.4.3“中没有提供,因为这似乎是一个服务器组件。
所以它归结为这个问题:我如何在一个普通的GWT项目中启用Vaadin网格上的排序?
谢谢,弗兰克
发布于 2015-04-13 23:30:17
我没有使用Vaadin的经验,但在普通的GWT中,您会这样做(其中T是您的对象):
ListDataProvider<T> dataProvider = new ListDataProvider<T>();
List<T> displayItems = dataProvider.getList();
ListHandler<T> sortHandler = new ListHandler<T>(displayItems);dateColumn.setSortable(true);
dateColumn.setDefaultSortAscending(false);
sortHandler.setComparator(dateColumn, new Comparator<Item>() {
@Override
public int compare(Item o1, Item o2) {
if (o1.getDate() != null) {
return (o2.getDate() != null) ?
o1.getDate().compareTo(o2.getDate()) : 1;
}
return -1;
}
});https://stackoverflow.com/questions/29609001
复制相似问题