gpt4 book ai didi

java - Vaadin7 - 网格禁用取消选择

转载 作者:行者123 更新时间:2023-11-30 08:08:27 25 4
gpt4 key购买 nike

如何在 Vaadin 7 中禁用取消选择 Grid 行,但允许使用键盘或鼠标单击选择另一行?

Grid grid = new Grid(container);
grid.setSelectionMode(Grid.SelectionMode.SINGLE);

例如,这对于较旧的 Table 组件是可能的 - SO answer .但我广泛使用 Grid,所以我想在这种情况下也使用它。

最佳答案

我找到了一个有趣的解决方案,但不幸的是它并不完美。

为了防止取消选择行,我们可以编写一个 SelectionListener 并在其中放置一些逻辑:

grid.setSelectionMode(Grid.SelectionMode.SINGLE);
grid.addSelectionListener(event -> {
Set<Object> selected = event.getSelected();
if (selected == null || selected.isEmpty()) {
Set<Object> removed = event.getRemoved();
removed.stream().filter(Objects::nonNull).forEach(someGrid::select);
}
});

所以假设单选模式,如果当前选择为空,那么应该再次选择之前选择的行。但是,如果当前选择不为空,则意味着有人选择了另一行 - 这不需要任何操作。

这很酷但还不够 - 每一次点击(选择)都会引起 http 调用和网络传输。这是劣势。

关于java - Vaadin7 - 网格禁用取消选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33100930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com