首页 > 解决方案 > Vaadin 13 Grid 中是否有“全选”复选框(即使在过滤条件下也有效,甚至某些数据不在缓存中?)

问题描述

在 Vaadin 13 中,我为我的网格启用了“多选”,效果很好。但是,通常,即使在过滤之后,我也有数百个项目(因此选择每个项目都会很乏味)。在我多年前使用的一个旧的旧 gwt“网格”工具中,他们有一个复选框,将出现在顶行/标题级别,如果选中,将对表中的所有行执行全选/取消全选(之后过滤)。Vaadin 13 中是否存在这样的解决方案?如果没有,是否有任何(简单且安全的)解决方法来实现类似的目标?(注意:这可能比最初看起来要复杂一些,因为全选/取消全选复选框应该选择所有项目,即使它们没有被显示甚至在后端缓存中......它应该选择基于过滤条件的所有记录......)

标签: vaadinvaadin-grid

解决方案


当您使用的数据提供者在内存中没有所有项目时,网格默认情况下不显示“全选”复选框。这样做的原因是它有可能给大型数据库带来很多麻烦。您仍然可以通过执行以下操作显式启用它:


import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.Grid.SelectionMode;
import com.vaadin.flow.component.grid.GridMultiSelectionModel;
import com.vaadin.flow.component.grid.GridMultiSelectionModel.SelectAllCheckboxVisibility;

((GridMultiSelectionModel<?>) grid.getSelectionModel())
    .setSelectAllCheckboxVisibility(SelectAllCheckboxVisibility.VISIBLE);

有关更多详细信息,请参阅https://github.com/vaadin/vaadin-grid-flow/issues/549


推荐阅读