在 Vaadin 13 中,我为我的网格启用了“多选”,效果很好。然而,通常,即使在过滤之后,我也有数百个项目(因此选择每个项目会很乏味)。在我多年前使用的旧 gwt“网格”工具中,它们有一个复选框,该复选框将出现在顶行/标题级别,如果选中,将为表中的所有行执行全选/取消全选(之后过滤)。 Vaadin 13 中是否存在这样的解决方案?如果没有,是否有任何(简单且安全的)解决方法来实现类似的目标? (注意:做起来可能比乍看起来有点棘手,因为全选/取消全选复选框应该选择所有项目even,如果它们没有显示或者甚至在后端缓存中....它应该根据过滤条件选择所有记录....)
最佳答案
当您使用内存中没有所有项目的数据提供者时,网格在默认情况下不会显示“全选”复选框。这样做的原因是它有可能给大型数据库带来很多麻烦。您仍然可以通过执行以下操作来显式启用它:
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了解更多详情。
关于vaadin - Vaadin 13 Grid 中是否有一个 "Select All"checkbok(即使有过滤条件也能工作,甚至有些数据不在缓存中?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262464/