Vaadin:如何从生成的HTML表格中进行自定义ajax调用?

时间:2017-04-27 01:51:04

标签: ajax vaadin vaadin8

我通过手动生成表格HTML并将其设置为Label中的Vaadin ContentMode.HTML来呈现数据(不使用Vaadin Table / Grid)。

我想在每一行中生成一个链接或一个按钮,这将导致服务器调用同一个View(并传递行项ID)。

我有一个模糊的想法:为每个行项生成隐藏的Vaadin Button,并将其添加到表格HTML之外的某个位置。然后我希望有一些Javascript可以让我访问并触发那些隐藏的按钮。我可以在我的表格HTML中生成该Javascript调用。

您认为这种方法可行吗?我如何使用Javascript访问并触发那些隐藏的Vaadin按钮?

或者是否有更简单的方法(不使用Table / Grid)?

编辑:也许这也适用于一个隐藏的按钮。 javascript调用可以在触发之前将Button标题设置为行id。

1 个答案:

答案 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);
  }

*非常高兴