我有以下代码:
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
,当我在表格中选择一个(不同的)行时会触发。
这样我就可以用表数据刷新一些其他控件,我应该使用哪个监听器?
答案 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)
答案 3 :(得分:1)
如果您使用ValueChangeListener,请不要忘记设置
table.setImmediate(true);
这意味着浏览器会立即报告选择的更改。如果你没有设置它,你的监听器就不会被调用。
答案 4 :(得分:0)
阅读https://vaadin.com/book/-/page/components.table.html,第5.15.1节“选择表格中的项目”。你想要add a Property.ValueChangeListener。