我有 CellTable 和 MultipleSelectionModel 附加到它。在对数据进行一些修改后,必须刷新表并且必须从服务器重新加载新数据。
但是我需要为新加载的数据更新复选框状态。所以我可以使用 selectionModel.getSelectedSet() 查询选择框——但现在我需要在表中找到这些对象并“检查”它们。
因为对象的内容发生了变化,并且由于它们在 GWT 组件内部用作 Maps 中的键 - 我被迫在这些对象上编写“包装器”,这些对象仅在 equals/hashCode 中使用 ID。
所以基本上我在触发事件之前保存 selectedSet ,然后迭代它并调用 setSelected 方法:
Set<T> selectedSet = selectionModel.getSelectedSet();
RangeChangeEvent.fire(table,...)
if (selectedSet != null)
for (T obj : selectedSet) {
selectionModel.setSelected(obj,true);
}
}
有没有更好的方法?