GWT + DataGrid冻结/解冻行选择

时间:2014-11-17 22:39:08

标签: gwt datagrid

所以我实现了一个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添加到现有选择模型中。 感谢。

1 个答案:

答案 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);
    }
});