我有可排序的列A和B。当用户单击列A进行排序时,我的结果数据应该通过列A类型进行排序,列B将显示相对datas.When用户被单击列B进行排序,我的结果数据应该通过列B>E 213类型和列<>E 114>AE 215显示相对数据。我以GWT列排序为例,使用GWT DataGrid和AsyncDataProvider进行列排序。此示例显示单列排序,我希望使用一个或多个列排序,但不知道如何确定
哪个列被触发列排序事件?
在我的RPC方法中
AsyncHandler handler = new AsyncHandler(myGridTable);
myGridTable.addColumnSortHandler(handler);
myGridTable.getColumnSortList().push(A_column);
myGridTable.getColumnSortList().push(B_column);
AsyncDataProvider<AdminModel> provider = new AsyncDataProvider<AdminModel>() {
protected void onRangeChanged(final HasData<AdminModel> display) {
final int start = display.getVisibleRange().getStart();
int length = display.getVisibleRange().getLength();
AsyncCallback<String> callback = new AsyncCallback<String> {
public void onFailure(final Throwable caught) {
Window.alert(caught.getMessage());
}
public void onSuccess(final String result) {
........
updateRowData(start, adminList);
}
};
final ColumnSortList sortList = myGridTable.getColumnSortList();
// Here to determine which column sort
// send request to server
}
};
provider.addDataDisplay(view.getDataGridResults());发布于 2014-06-05 07:03:33
详情请参见这里。
基本上,view.getDataGridResults().getColumnSortList().get(0).getColumn()将返回用户单击的列。
如果您还想获得其他列(例如,多个排序),则还必须检查索引>0(即get(1).getColumn())。
一旦有了列,就可以通过调用view.getDataGridResults().getColumnSortList().get(0).getColumn().isAscending()检查方向
https://stackoverflow.com/questions/24036832
复制相似问题