【问题标题】:Vaadin-Grid: Select all check box does not work in the UIVaadin-Grid:全选复选框在 UI 中不起作用
【发布时间】:2021-07-16 08:45:49
【问题描述】:

问题:

我有一个延迟加载的网格,因此我的数据不在内存中。

显示复选框以选择/取消选择我使用的所有this Question。 我的代码如下所示:

Grid<CustomClass> grid;
...
// set selection mode
grid.setSelectionMode(SelectionMode.MULTI);
// make select all check box visible
GridSelectionModel<CustomClass> selectionModel = grid.getSelectionModel();
((GridMultiSelectionModel<CustomClass>) selectionModel)
    .setSelectAllCheckboxVisibility(SelectAllCheckboxVisibility.VISIBLE);

问题是,如您所见,该复选框在 UI 中不起作用:

如果我使用以下代码记录所选项目,则复选框按预期工作

grid.addSelectionListener(l -> {
    log.info("selected: " + l.getAllSelectedItems().size());
});

问题:

我该怎么做才能使该复选框在 UI 中也有效?

【问题讨论】:

  • selectAll 在您的情况下应该是什么意思?只有可见行还是数据库中的所有行?
  • 所有可见行。日志中的大小也是所有可见行。
  • 您可以存储获取的记录并将它们传递给 grid.asMultiSelect().select();
  • 你到底是什么意思?我尝试使用grid.asMultiSelect().select();,但没有帮助。
  • 我的意思是你必须将所有加载的对象传递给方法 select

标签: select checkbox vaadin vaadin-grid


【解决方案1】:

我发现UI中checkoxes更新的解决方案是在监听器中添加dataPovider.refreshAll()

解决方案代码:

grid.addSelectionListener(l -> {
    ...
     dataPovider.refreshAll();
    ...
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多