GWT:选择模型不能正常工作

时间:2012-01-21 00:52:41

标签: gwt

我在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);

但它不起作用,因为我认为类别不是已经添加的类别..

任何建议

由于

1 个答案:

答案 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());
      }
});