我有一些行和列的vaadin表。如何让单元格可以在1列中单击?如何使vaadin表单元格单击监听器
目标:代替鼠标悬停,我想在单击该特定列的单元格时显示工具提示。该单元格包含文本作为标签。
我没有发布任何代码,因为我拥有的只是表(它不会帮助任何人)。
我有一些行和列的vaadin表。如何让单元格可以在1列中单击?如何使vaadin表单元格单击监听器
目标:代替鼠标悬停,我想在单击该特定列的单元格时显示工具提示。该单元格包含文本作为标签。
我没有发布任何代码,因为我拥有的只是表(它不会帮助任何人)。
目前不可能有clickListener
附加到Grid
中的特定单元,如在此discussion上所述。他们告诉说单元只是数据的表示,而不是元素,所以它们不能被点击。
除此之外,您可以在单元格内添加组件,如插件LabelButton
(github)或只需添加Button
并将其设置为无边界。
PD:作为奖励,我加入了代码在Grid
添加Button
:
Vaadin 7
RendererClickListener clickListener = new RendererClickListener() {
private static final long serialVersionUID = 1L;
@Override
public void click(RendererClickEvent event) {
//Do your actions
}
};
ButtonRenderer renderer = new ButtonRenderer(ownerClickListener, "");
grid.getColumn("columnName").setRenderer(renderer);
这个的替代方法将使用像GeneratedPropertyContainer
这样的属性生成器,并使用像ComponentRenderer
(here)这样的插件来渲染按钮。在其它我的答案的例子here ..
Vaadin 8.1
Vaadin 8.1现在有一个内置的ComponentRenderer
在Grid
使用。请参阅What’s New,第一项“网格中的组件”。
grid.addComponentColumn(person -> {
Button button = new Button("Click me!");
button.addClickListener(click ->
Notification.show("Clicked: " + person.toString()));
return button;
});
// make sure the buttons fit in the cells of the Grid
grid.setBodyRowHeight(40);
如示例显示,Grid
文档Vaadin的in Vaadin page
至极版本您使用的? – Shirkam
我正在使用vaadin 7.7.10 – user1631306
你可以使用这里说的话https://github.com/vaadin/vaadin-grid/issues/407他们告诉单元格本身不能被点击,但是你可以在里面添加一个组件他们就是解决你的问题。 – Shirkam