我有一个包含一些行和列的vaadin表。如何使单元格可单击某一列?
目标:而不是鼠标悬停,我想显示工具提示在该1特定列的单元格上。单元格包含文本作为标签。
我没有发布任何代码,因为我所有的只是表(这不会帮助任何人)。
发布于 2017-08-23 22:23:26
目前不可能将clickListener
附加到Grid
中的特定单元格,就像在此讨论上嵌入的那样。他们告诉我们,细胞只是数据的表示,而不是元素,所以不能点击它们。
相反,您可以在单元格中添加一个组件,比如addon LabelButton
(github),或者简单地添加一个Button
并将其样式设置为无边界。
Button
PD:作为奖励,我在 Grid
__中添加了添加的代码
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
(这里)这样的加载项来呈现按钮。一个例子这里在我的其他答案..。
Vaadin 8.1
Vaadin8.1现在有一个内置的ComponentRenderer
,用于Grid
。参见https://vaadin.com/framework/whatsnew,第一项,“网格中的组件”。
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页面中所示
https://stackoverflow.com/questions/45697291
复制相似问题