Vaadin 8 TreeGrid - leaf/child 元素是否可以有多个 select,而父元素不能 select?
Vaadin 8 TreeGrid - is it possible to have multi select for leaf/child elements, and have parents not selectable?
Vaadin 8 使用网格。树形网格是根元素可以附加叶元素(子元素)的地方。在我的例子中,我想要 multi select 的网格特征 - 给每一行一个复选框以允许 selecting 多行,但我不希望用户能够 select parent/root 网格中的元素。如何禁用 multi select 树状网格中的根元素,并且只允许 multi select 叶元素?
您无法完全阻止选择,但您可以在出现任何不需要的选择时立即取消选择:
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);
}
});
Vaadin 8 使用网格。树形网格是根元素可以附加叶元素(子元素)的地方。在我的例子中,我想要 multi select 的网格特征 - 给每一行一个复选框以允许 selecting 多行,但我不希望用户能够 select parent/root 网格中的元素。如何禁用 multi select 树状网格中的根元素,并且只允许 multi select 叶元素?
您无法完全阻止选择,但您可以在出现任何不需要的选择时立即取消选择:
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);
}
});