我在GWT中有一个celltable,想要从数据库(Criteria)上实现排序功能 为此我只想知道如何获得已被点击进行排序的列的值
这是我的代码
ctJobs.addColumnSortHandler(new ColumnSortEvent.Handler() {
public void onColumnSort(ColumnSortEvent event) {
event.getColumn();
event.getColumn().getValue("what do we need to write here ???");
来自event.getColumn()的,我以对象
的形式获取列com.google.gwt.cell.client.ClickableTextCell@188a12e
我想知道列的名称/值 因为我正在尝试event.getcolumn()。getvalue(“??”); 但是这个参数是什么,或者是否有任何其他方法可以获得已被点击的列名。
由于
答案 0 :(得分:4)
您的单元格表使用的是ListDataProvider
还是AsyncDataProvider
?
如果AsyncDataProvider
必须在服务器端进行排序,则无需添加ColumnSortHandler
。
请参阅GWT docs。
要获取点击列的名称以进行排序,请参阅此question。
答案 1 :(得分:1)
创建表列时,请设置列的dataStoreName。
column.setDataStoreName("columnX");
接下来,在AsyncDataProvider中获取所点击标题的排序历史记录,如下所示
final AsyncDataProvider<SQLRow> dataProvider = new AsyncDataProvider<SQLRow>(){
@Override
protected void onRangeChanged(HasData<SQLRow> display) {
for (int i=0;i<sortList.size();i++) {
sortList.get(i).getColumn().getDataStoreName();
}
}
}