所以我有这段代码在GWT Showcase上几乎完全相同
selectionModel = new SingleSelectionModel<T>(keyProvider);
cellTable.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
selectedRow = ((SingleSelectionModel<T>).selectionModel)
.getSelectedObject();
});
Column<T, Boolean> checkColumn = new Column<T, Boolean>(new CheckboxCell(true, false)) {
@Override
public Boolean getValue(T object) {
return cellTable.getSelectionModel().isSelected(object);
}
};
cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
问题是,当我取消选中复选框时,SelectionChangeEvent不会处理它。 调用onSelectionChange的唯一实例是当我选择另一条记录时,但取消选择一条记录不会调用此方法。
任何帮助?
答案 0 :(得分:3)
我猜你忘了添加DefaultSelectionEventManager。
更改此行
cellTable.setSelectionModel(selectionModel);
到
cellTable.setSelectionModel(selectionModel,
DefaultSelectionEventManager.<T> createCheckboxManager());