使用 vaadin 从网格行获取数据

Get data from grid row using vaadin

我正在使用 vaadin 创建一个 CRUD 应用程序 我有一个带有对象 Person (id, name, age) 的网格 我在每一行旁边制作了一个“编辑”按钮,但是当我按下按钮时如何获得该行的 Person 值?

 grid.addComponentColumn(e -> new Button("Edit"));

您示例中的 e 变量是网格项,即 Person 实例。如果您将回调扩展到一个块以向按钮添加一个侦听器而不是只创建一个,那么您可以直接引用该侦听器中的项目。

因此,代码可能是这样的(假设 Person 中有一个 getName() 方法):

grid.addComponentColumn(person -> {
  Button button = new Button("Edit");
  button.addClickListener(event -> Notification.show("Editing " + person.getName()));
  return button;
});