如何响应单击vaadin中的表行

时间:2013-02-03 17:28:29

标签: java vaadin

我有以下代码:

public Button getBtnSubmit(com.vaadin.ui.Button.ClickListener l) {
    if (null != l) {
        btnSubmit.addListener(l);
    }
    return btnSubmit;
}

public Table getTableCompany(HeaderClickListener hl) {
    if (null != hl) {
        tableCompany.addListener(hl);
    }
    return tableCompany;
}

我想添加一个listener,当我在表格中选择一个(不同的)行时会触发。
这样我就可以用表数据刷新一些其他控件,我应该使用哪个监听器?

5 个答案:

答案 0 :(得分:15)

addListener现已弃用。请改用以下内容。

table.addItemClickListener(new ItemClickEvent.ItemClickListener() {
    @Override
    public void itemClick(ItemClickEvent itemClickEvent) {
        System.out.println(itemClickEvent.getItemId().toString());
    }
});

答案 1 :(得分:5)

我会选择ItemClickListener

 table.addListener(new ItemClickEvent.ItemClickListener() {

            @Override
            public void itemClick(ItemClickEvent event) {
               //implement your logic here
            }
        });

编辑:对于Vaadin 7+,请使用addItemClickListener方法而不是addListener

答案 2 :(得分:1)

您想添加ValueChangeListener

答案 3 :(得分:1)

如果您使用ValueChangeListener,请不要忘记设置

  table.setImmediate(true);

这意味着浏览器会立即报告选择的更改。如果你没有设置它,你的监听器就不会被调用。

答案 4 :(得分:0)

阅读https://vaadin.com/book/-/page/components.table.html,第5.15.1节“选择表格中的项目”。你想要add a Property.ValueChangeListener