我有这种情况,我想删除此单元格表中的对象,其复选框为选中此“删除”按钮的单击,
当我单击删除按钮时,知道如何获取在此 cellTable 中选中复选框的那些对象。
谢谢
@junaidp,由于您没有提供任何代码,我假设您已使用 CheckBoxCell 生成复选框列并将 MultiSelectionModel 分配给您的 cellTable。您可以使用以下代码:
Set<T> selectedObjects = ((MultiSelectionModel<T>)(cellTable.getSelectionModel())).getSelectedSet();
这里selectedObjects将是 T 类型,您应该指定为CellTable<T>
。
selectedObjects将是对象,仅与选中的行相关联。
您可以通过以下方式检查给定单元格的选定状态:
Column<CellInfo, Boolean> checkColumn =
new Column<MemberInfo, Boolean>(new CheckboxCell(true, false)) {
public Boolean getValue(CellInfo object) {
// Get the value from the selection model.
return selectionModel.isSelected(object);
}
};
如果您要求删除单行,那么您可以在 celltable 中使用 SingleSelectionModel 否则 MulitiSelectionModel。我已经用单选模型编写了一些代码,它可能会给出一些想法。IE
selectionModel = new SingleSelectionModel<T>();
cellTable.setSelectionModel(selectionModel) //Set into your cellTable:
当您选择一个复选框时,行将自动选择,对象将设置为选择模型。
CheckboxCell checkboxCell=new CheckboxCell(true, false);
Column<T, Boolean> boolColumn=new Column<T, Boolean>(
checkboxCell) {
@Override
public Boolean getValue(T object) {
return selectionModel.isSelected(object);
}
};
单击删除按钮时,使用选定的对象,它将为您提供一个删除对象。
selectionModel.getSelectedObject();