如何将自定义选择处理程序添加到单元格

时间:2012-06-20 22:01:38

标签: gwt gwt-2.2-celltable celltable gwt-celltable selectionmodel

我想在celltable中添加一个特殊的选择模型。基本上我想要的功能是在桌子上选择一个位于左侧的行,右侧会弹出相应的表格。 我知道有很多人会将singleSelectionModel与SelectionChangeHandler一起使用。 但这种方法存在问题。

例如,如果我在表格上选择第1行。表格弹出。我点击关闭按钮关闭表单。之后,我再次选择第1行,事件未被触发,因为它是SelectionChangeHandler。在执行此操作之前,我必须选择其他行。这不好。

所以我认为有几种方法可以做到这一点:

  1. 选择行后立即取消选择行。
  2. 使用点击处理程序触发事件(弹出表单)
  3. 使用其他选择模型和其他选择处理程序来执行此操作。 (虽然我对此没有任何想法)
  4. 所以我的问题是,

    1. 有谁知道我可以使用哪种其他选择处理程序。
    2. 如果我在celltable上使用click处理程序,会有任何问题吗?
    3. 我只想了解更多相关信息。所以任何想法都会受到欢迎。 非常感谢。

      最诚挚的问候。

2 个答案:

答案 0 :(得分:1)

使用NoSelectionModel。选择行后,它不会更新表视图。也就是说,即使选择了相同的行,也会触发change事件。

//Here 'Contact' is the datatype of the record
final NoSelectionModel<Contact> selModel = new NoSelectionModel<Contact>();
selModel.addSelectionChangeHandler(new Handler() {
    @Override
    public void onSelectionChange(SelectionChangeEvent event) {
        Contact clickedObject = selModel.getLastSelectedObject();
        GWT.log("Selected " + clickedObject.name);
    }
});
table.setSelectionModel(selModel);

答案 1 :(得分:0)

我在每个项目中都使用了单元格表。如你所述,手动取消选择行的更好方法。选择后,选择单元格表的行看起来没有改变。