gpt4 book ai didi

java - 无法对单元格表列进行排序

转载 作者:行者123 更新时间:2023-12-01 12:31:37 28 4
gpt4 key购买 nike

我想对 celltable 列进行排序,到目前为止已经写了,但它似乎不起作用,我就像在 gwt 展示中使用 celltable 列排序一样完成了这一切:

ListHandler<M> sort;

public View() {

getM(0,m);
createM();
}
void createM() {

Column<M, String> firstColumn = new Column<M, String>(
new TextCell()) {

@Override
public String getValue(M object) {
return object.getName();
}

};

table.addColumn(firstColumn,"Name");
firstColumn.setSortable(true);
sort.setComparator(firstColumn, new Comparator<M>() {

@Override
public int compare(M m1, M m2) {

return m1.getName().compareTo(m2.getName());
}
});

void getM(int dataID, M m) {
final ListDataProvider<M> listProvider = new ListDataProvider<M>();
listProvider.addDataDisplay(table);
listProvider.refresh();
final List<M> mList = listProvider.getList();
sort = new ListHandler<M>(mList);



AsyncCallback<List<M>> callback = new AsyncCallback<List<M>>() {

@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}

@Override
public void onSuccess(final List<M> result) {

for (final M m : result) {

mList.add(m);

}

table.addColumnSortHandler(sort);

}

};


rpcService.getDataSource(dataID, m, callback);

有什么建议吗,这里有什么问题吗?我该如何解决这个问题?

我将代码从 getM() 移至 createM(),如下所示:

void createM() {
final ListDataProvider<M> listProvider = new ListDataProvider<M>();
listProvider.addDataDisplay(table);
listProvider.refresh();
final List<M> mList = listProvider.getList();
sort = new ListHandler<M>(mList);
Column<M, String> firstColumn = new Column<M, String>(
new TextCell()) {

@Override
public String getValue(M object) {
return object.getName();
}

};

table.addColumn(firstColumn,"Name");
firstColumn.setSortable(true);
sort.setComparator(firstColumn, new Comparator<M>() {

@Override
public int compare(M m1, M m2) {

return m1.getName().compareTo(m2.getName());
}
});

它对列进行排序,但如果我选择要在列中显示的下一个数据,它将添加到列中的现有项目中,有人能指出我为什么会这样吗?

最佳答案

第一个示例不起作用,因为您重新初始化了 sort 对象:

sort = new ListHandler<M>(mList); 

这将从排序中删除所有设置。

在第二个示例中,您需要调用

mList.clear();

在将新项目添加到此列表之前。另外,移动

table.addColumnSortHandler(sort);

从回调到您的 create 方法。无需每次添加数据时都调用它。

关于java - 无法对单元格表列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com