我有一个带有 CheckBoxCell 列的 cellTable。我想要做的是在单元格表之外有一组按钮,让用户自动选中/取消选中一组不同的元素(例如选中所有/取消选中所有,但我想要更复杂的规则)。
我不明白的是如何访问元素(我想是通过行/列值???)并获取/设置值。
谁能帮我弄清楚如何解决它?
最佳答案
假设您想要将复选框绑定(bind)到“选择”并以编程方式轻松选择一堆项目(微妙:选择项目,这将导致复选框被选中,而不是复选框),您将使用 MultiSelectionModel
.
您可以在 http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable 中找到示例代码, 那是:
final MultiSelectionModel<ContactInfo> selectionModel = new MultiSelectionModel<ContactInfo>(
ContactDatabase.ContactInfo.KEY_PROVIDER);
cellTable.setSelectionModel(selectionModel,
DefaultSelectionEventManager.<ContactInfo> createCheckboxManager());
…
Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(
new CheckboxCell(true, false)) {
@Override
public Boolean getValue(ContactInfo object) {
// Get the value from the selection model.
return selectionModel.isSelected(object);
}
};
cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
cellTable.setColumnWidth(checkColumn, 40, Unit.PX);
然后,要选择一个项目(并自动选中其复选框),您只需执行以下操作:
selectionModel.setSelected(item, true);
并且您可以类似地使用
selectionModel.getSelectedSet()
获取所有选定项目的集合.
关于GWT CellTable 以编程方式选择 CheckBoxCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174689/