在Vaadin Grid中取消选择所选行

时间:2016-11-09 12:17:51

标签: java vaadin vaadin-grid

有人可以给我一个暗示,因为我被困了。我还没有找到解决问题的合适方案。

我有一个Grid,有1-3行。我点击了行 - >该行已被选中。

我希望在点击其他地方(在此行之外)但在网格内部之后取消选择此行。

这是一个简单的截图,可以帮助您更好地浏览它。

enter image description here

我应该为这种情况使用什么样的听众?我试过ItemClickListener - >没有帮助。

2 个答案:

答案 0 :(得分:1)

尝试将网格放在单独的布局中并向其添加LayoutClickListener

gridLayout.addLayoutClickListener(new LayoutEvents.LayoutClickListener() {
    @Override
    public void layoutClick(LayoutEvents.LayoutClickEvent event) {
        if(grid.getSelectedRow() != null) {
            grid.deselectAll();
        }
    }
});

答案 1 :(得分:0)

gridLayout.asSingleSelect().addSelectionListener(e->{
    if(e.getFirstSelectedItem().isPresent()) {
          system.out.println("selected");
        }else {
         // when deselected make some actions here
            system.out.println("deSelected");
        }
});

选择: 如果您第一次单击同一行数据,则将打印 选定的 ,因为您单击的内容中存在值。

取消选择: 现在尝试第二次单击相同的选定行,它将进入取消选择模式。由于取消选择时没有值。现在无需单击网格上的任何位置,您可以单击同一行数据两次以进行选择和取消选择。