1

我发现如果您有一个 GWTCellTable并添加一个包含 a 的列CheckboxCell,则通过 a 进行的选择SingleSelectionModel不再起作用。这种单元格类型确实会阻碍行选择。遵循在 2.5.0.rc1 中演示此行为的代码示例。

final CellTable<LicenseDto> licenseTable = new CellTable<LicenseDto>();
final SingleSelectionModel<LicenseDto> selectionModel = new SingleSelectionModel<LicenseDto>();
licenseTable.setSelectionModel(selectionModel);


//--- If I add this column, the selection does work.
Column<LicenseDto, String> workingColumn = new Column<LicenseDto, String>(new TextCell()) {

    @Override
    public String getValue(LicenseDto object) {
        return "Works";
    }
};
workingColumn.setFieldUpdater(new FieldUpdater<LicenseDto, String>() {

    @Override
    public void update(int index, LicenseDto object, String value) {
        ;
    }
});
licenseTable.addColumn(workingColumn);


//--- If I add this column, the selection does NOT work anymore.
Column<LicenseDto, Boolean> notWorkingColumn = new Column<LicenseDto, Boolean>(new CheckboxCell(true, true)) {

    @Override
    public Boolean getValue(LicenseDto object) {
        return object.getEnabled();
    }
};
notWorkingColumn.setFieldUpdater(new FieldUpdater<LicenseDto, Boolean>() {

    @Override
    public void update(int index, LicenseDto object, Boolean value) {
        presenter.enableLicense(object, value);
    }
});
licenseTable.addColumn(notWorkingColumn);

initWidget(licenseTable);

您可以组合多个单元格并将它们添加到表格中(例如LinkActionCell等)。只要没有CheckboxCell,蓝色的选择与SingleSelectionModel作品一样有魅力。有没有人看到我做错了什么CheckboxCell或者有错误?

4

1 回答 1

3

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

Column<LicenceDto, Boolean> enableLicenseColumn = new Column<LicenceDto, Boolean>(new CheckboxCell(false, false)) {

    @Override
    public Boolean getValue(LicenceDto object) {
        return object.getEnabled();
    }
};
enableLicenseColumn.setFieldUpdater(new FieldUpdater<LicenceDto, Boolean>() {

    @Override
    public void update(int index, LicenceDto object, Boolean value) {
        presenter.enableLicense(object, value);
    }
});

问题得到了回答。

于 2013-02-15T12:05:00.720 回答