我在GWT中有一个带有复选框的单元格,要选择多个复选框我正在使用selectionModel,一旦我选中任何复选框,其值将保存在selectionModel中,但是当我取消选中该复选框时,它们永远不会删除,我想要删除以前的选择,怎么可能
下面是代码
List<Categories> selected;
display.getListWidget().getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
selected = new ArrayList<Categories>(
((MultiSelectionModel<Categories>) display.getListWidget().getSelectionModel()).getSelectedSet());
}
});
我想做的是
display.getListWidget().getSelectionModel().setSelected(categories, false);
但它不起作用,因为我认为类别不是已经添加的类别..
任何建议
由于
答案 0 :(得分:1)
如果您可以通过更多代码或更具体的方式澄清您的问题,我们可能会给出更好的答案。从您的问题来看,我猜测您的类别等于和哈希码不会被&#34;类别&#34;你正试图找到它。
我在这里猜测一下,但我认为KeyProvider会帮助您取消选择正确的Categories对象。
视图:
SelectionModel<Categories> selectionModel;
ProvidesKey<Categories> keyProvider = new ProvidesKey<Categories>() {
public Object getKey(Categories categories) {
return item == null ? null : categories.id() // or some unique identifier
}
};
CellTable cellTable = new CellTable<Categories>(keyProvider);
// Omitted..Add columns..
selectionModel = new MultiSelectionModel<Categories>(keyProvider);
cellTable.setSelectionModel(selectionModel);
主持人:
List<Categories> selected;
display.getListWidget().getSelectionMode().addSelectionChangeHandler(
new SelectionChangeHandler() {
public void onSelectionChange() {
MultiSelectionModel selectionModel =
(MultiSelectionModel) display.getListWidget().getSelectionModel();
selected = Lists.newArrayList(selectionModel.getSelectedSet());
}
});