我有vaadin表,里面有一些行和列。如何使单元格可以单击1个特定列?
目标:我希望在点击该特定列的单元格时显示工具提示,而不是鼠标悬停。单元格包含文本作为标签。
我没有发布任何代码,因为我只有桌子(它不会帮助任何人)。
答案 0 :(得分:1)
目前无法在clickListener
中附加Grid
个LabelButton
个特定单元格,因为此discussion上有此问题。他们告诉单元格只是数据的表示,而不是元素,所以不能点击它们。
除此之外,您可以在单元格中添加组件,例如插件Button
(github),或者只需添加Button
并将其设置为无边框。
PD:作为奖励,我添加了Grid
中添加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);
的代码:
Vaadin 7
GeneratedPropertyContainer
此方法的替代方法是使用ComponentRenderer
之类的属性生成器,并使用类似ComponentRenderer
(here)的插件来呈现按钮。我的其他答案中的一个例子here ..
Vaadin 8.1
Vaadin 8.1现在有一个内置的Grid
可供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);
使用。请参阅What’s New,第一项,“网格中的组件”。
Grid
正如margin-left: -134px;
文档in Vaadin page