vaadin - Vaadin 8 TreeGrid - 是否可以对叶/子元素进行多选,并且父母不能选择?
问题描述
Vaadin 8 使用了网格。树形网格是根元素可以附加叶元素(子元素)的地方。就我而言,我想要多选的网格功能 - 给每一行一个复选框以允许选择多行,但我不希望用户能够选择网格中的父/根元素。如何从多选中禁用树网格中的根元素,并且只允许多选叶元素?
解决方案
您无法完全阻止选择,但您可以在发生任何不需要的选择时立即取消选择:
treeGrid.addSelectionListener(e -> {
Set<HierarchicalBean> allSelectedItems = e.getAllSelectedItems();
Set<HierarchicalBean> toRemove = new HashSet<>();
for (HierarchicalBean b : allSelectedItems) {
if (!b.hasParent()) {
toRemove.add(b);
}
}
for (HierarchicalBean beanToRemove : toRemove) {
treeGrid.deselect(beanToRemove);
}
});
推荐阅读
- asp.net-core - 我们如何将 identityserver4 和 web api 集成到同一个项目(端口)中,而不是为每个项目创建不同的项目?
- r - 删除 plotly 中的某些配置选项
- php - 如何使用正则表达式在字符串中准确查找单词或字符串?
- .net - Asp.Net Core 2.2 Docker HTTPS 问题
- php - Laravel OR 验证 URL 或 IP
- python - 从 kworb.net 抓取数据时,if 条件不在 for 循环中执行
- c - 将文件中的信息存储到 C 中的结构中 - 遇到分段错误
- python - 为什么将 2D ndarray 传递给非零函数时会得到这么多索引?
- c++ - Google 测试不显示报告消息
- flask-sqlalchemy - 从对象初始化时,“刷新”失败