我通过手动生成表格HTML并将其设置为Label
中的Vaadin ContentMode.HTML
来呈现数据(不使用Vaadin Table
/ Grid
)。
我想在每一行中生成一个链接或一个按钮,这将导致服务器调用同一个View(并传递行项ID)。
我有一个模糊的想法:为每个行项生成隐藏的Vaadin Button
,并将其添加到表格HTML之外的某个位置。然后我希望有一些Javascript可以让我访问并触发那些隐藏的按钮。我可以在我的表格HTML中生成该Javascript调用。
您认为这种方法可行吗?我如何使用Javascript访问并触发那些隐藏的Vaadin按钮?
或者是否有更简单的方法(不使用Table
/ Grid
)?
编辑:也许这也适用于一个隐藏的按钮。 javascript调用可以在触发之前将Button标题设置为行id。
答案 0 :(得分:0)
Vaadin提供Javascript function callbacks。
我找到了一个为每一行生成此HTML的解决方案:
<a class='button' href='javascript:myfunction(" + itemId + ");'>Execute</a>
该功能是这样注册的。
JavaScript.getCurrent().addFunction("myfunction", args -> handleMyfunction(args));
并像这样处理:
private void handleMyfunction(JsonArray args) {
long itemId = (long) args.getNumber(0);
LOGGER.log(Level.INFO, "itemId: " + itemId);
}
*非常高兴