所以我实现了一个SingleSelectionModel来只选择DataGrid中的单行。
final SingleSelectionModel<Entity> selectionModel = new SingleSelectionModel<>(keyProvider);
我已经创建了一个复选框,可以冻结/解冻行选择。 换句话说,当选中复选框时,必须选择当前行(蓝色突出显示,因为我使用SingleSelectionModel),并且当复选框被选中时,用户不能通过键盘/鼠标选择另一行。该行仍然必须保持选中状态。
// disable row selection using selection model
disableSelection.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> event) {
// do stuff, any suggestions guys?
}
});
可能使用NoSelectionModel,或者将selectionChangeHandler添加到现有选择模型中。 感谢。
答案 0 :(得分:0)
您可以尝试:
NoSelectionModel<Entity> noSelectionModel = new NoSelectionModel<Entity();
...
disableSelection.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> event) {
myDataGrid.setSelectionModel(event.getValue() ? noSelectionModel : selectionModel);
}
});