Vaadin table 行侦听器在单击时触发多次
Vaadin table row listener triggers multitple times on click
您好,我正在为 vaadin 7 的 table 行中的点击事件使用自定义侦听器。
问题是触发器为 table 上的每一行跳转一次。
这是正常行为吗?
我的代码:
正在向 table
添加侦听器
table.addItemClickListener(new MyCustomListener());
监听代码:
public class MyCustomListener implements ItemClickListener {
@Override
public void itemClick(ItemClickEvent event) {
// TODO Auto-generated method stub
String id = event.getItem().toString();
System.out.println(id);//If the table has X rows this is printed X
//times even if i click a single time in a row
}
}
我在 7.7.16 版中使用 Vaadin 创建了一个最小示例,其中我创建了一个 table,用 3 个实体填充它并添加了您的 MyCustomListener。每当我单击一行时,只会为所选行触发一个事件。所以不,这不是正常行为。您确定只在 table 上调用一次 addItemClickListener 吗?你应该检查一下,这个方法只被调用一次。也许您想在
处设置一个断点
table.addItemClickListener(new MyCustomListener());
因为如果多次调用addItemClickListener,就会有多个ActionListener被全部执行(正如方法名所说添加一个监听器)。并且您添加的新侦听器数量似乎与 table.
中的实体数量一样多
您好,我正在为 vaadin 7 的 table 行中的点击事件使用自定义侦听器。 问题是触发器为 table 上的每一行跳转一次。 这是正常行为吗?
我的代码:
正在向 table
添加侦听器table.addItemClickListener(new MyCustomListener());
监听代码:
public class MyCustomListener implements ItemClickListener {
@Override
public void itemClick(ItemClickEvent event) {
// TODO Auto-generated method stub
String id = event.getItem().toString();
System.out.println(id);//If the table has X rows this is printed X
//times even if i click a single time in a row
}
}
我在 7.7.16 版中使用 Vaadin 创建了一个最小示例,其中我创建了一个 table,用 3 个实体填充它并添加了您的 MyCustomListener。每当我单击一行时,只会为所选行触发一个事件。所以不,这不是正常行为。您确定只在 table 上调用一次 addItemClickListener 吗?你应该检查一下,这个方法只被调用一次。也许您想在
处设置一个断点table.addItemClickListener(new MyCustomListener());
因为如果多次调用addItemClickListener,就会有多个ActionListener被全部执行(正如方法名所说添加一个监听器)。并且您添加的新侦听器数量似乎与 table.
中的实体数量一样多