0

我在 CellTable 中使用 GWT MultiSelectionModel,其中一列中有一个复选框,另一列中有一个小部件。我添加了处理程序来根据用户点击更新选择状态。如果用户在选择单元格时单击任一列的任何部分,则状态会正确更新,并且单元格会从浅蓝色变为白色。但是,如果用户单击复选框并选择了单元格,则复选框未选中,但单元格仍为蓝色。更奇怪的是:如果我在执行状态更新代码之前有几个断点,则不会发生此问题。

在所有其他情况下,单元格状态和复选框状态都会正确更新。请注意,我没有使用 ProvidesKeys 接口,因为对象不会更改。

谁能帮我这个?谢谢你的帮助。

4

2 回答 2

1

您是否尝试过将 aCheckBoxCell用于您的复选框列,特别是CheckboxCell(boolean dependsOnSelection, boolean handlesSelection)构造函数(通过传递true给两个参数)?

于 2013-06-01T11:10:17.510 回答
0

当我使用 MultiSelectionModel 时,我遇到了几乎相同的问题。我的解决方法是将复选框的列视为特殊列,然后手动处理它。说:

myDataGrid.addCellPreviewHandler(
  @Override
  public void onCellPreview(final CellPreviewEvent<MyCellData> event){
    if("click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn()){
      doWhatYouWant();
    }
  }
)
于 2013-06-01T05:35:55.170 回答