GWT CheckboxCell妨碍了CellTable中的选择

GWT CheckboxCell妨碍了CellTable中的选择,gwt,checkbox,cell,celltable,selectionmodel,Gwt,Checkbox,Cell,Celltable,Selectionmodel,我发现,如果您有一个GWTCellTable并添加了一个包含CheckboxCell的列,那么通过SingleSelectionModel进行的选择将不再有效。此单元格类型不妨碍行选择。 遵循2.5.0.rc1中演示此行为的代码示例 final CellTable licenseTable=new CellTable(); 最终SingleSelectionModel selectionModel=新的SingleSelectionModel(); licenseTable.setSelecti

我发现,如果您有一个GWT
CellTable
并添加了一个包含
CheckboxCell
的列,那么通过
SingleSelectionModel
进行的选择将不再有效。此单元格类型不妨碍行选择。 遵循2.5.0.rc1中演示此行为的代码示例

final CellTable licenseTable=new CellTable();
最终SingleSelectionModel selectionModel=新的SingleSelectionModel();
licenseTable.setSelectionModel(selectionModel);
//---如果我添加此列,则选择不起作用。
Column workingColumn=新列(new TextCell()){
@凌驾
公共字符串getValue(LicenseDto对象){
返回“作品”;
}
};
workingColumn.setFieldUpdater(新的FieldUpdater(){
@凌驾
公共无效更新(int索引、LicenseDto对象、字符串值){
;
}
});
licenseTable.addColumn(工作列);
//---如果我添加此列,选择将不再有效。
列notWorkingColumn=新列(新复选框单元格(true,true)){
@凌驾
公共布尔getValue(许可对象){
返回object.getEnabled();
}
};
notWorkingColumn.setFieldUpdater(新的FieldUpdater(){
@凌驾
公共无效更新(int索引、LicenseDto对象、布尔值){
presenter.enableLicense(对象、值);
}
});
licenseTable.addColumn(notWorkingColumn);
initWidget(许可证表);

您可以组合多个单元格并将其添加到表中(例如,
LinkActionCell
等)。只要没有
CheckboxCell
,带有
SingleSelectionModel
的蓝色选项就会像一个符咒一样工作。有没有人看到我用这个
CheckboxCell做了什么错事
或者有什么bug?

谢谢你,托马斯!问题是我设置了
handlesSelection=true
甚至认为我什么都不处理。将其设置为false可以解决问题。 顺便说一下,我在列中添加了一个
fieldUpdater
,以处理复选框的勾选或取消勾选:

Column enableLicenseColumn=新列(新CheckboxCell(false,false)){
@凌驾
公共布尔getValue(LicensedTo对象){
返回object.getEnabled();
}
};
enableLicenseColumn.setFieldUpdater(新的FieldUpdater(){
@凌驾
公共无效更新(int索引、LicensedTo对象、布尔值){
presenter.enableLicense(对象、值);
}
});

问题得到了回答。

你想做什么?单击一行是否应该选择它?是否还要选中复选框?是否应选中该复选框以选中该行?当您添加
CheckboxCell
时,会发生什么情况?只要没有选择其他行(请参阅我的示例),我将尝试保持选中该行(以蓝色突出显示)。用户单击哪个单元格并不重要。选择模型实际上做了我想做的事情。现在的问题是,如果我添加一个CheckboxCell,它表明selectionModel不再工作(如果您向模型添加SelectionChangeHandler,它不再被激发)。如果复选框不控制或依赖于选择,那么为什么要使用
新建复选框(true,true)
?(可能无法解决您的问题,只是顺便说一句)