Vaadin 14 Grid - 如何遍历网格行中的所有按钮

Vaadin 14 Grid - How to iterate over all buttons in grid rows

我正在 Vaadin 14.5.3 中开发应用程序。我有一个网格,其中每一行都包含一个文本字段和两个按钮。

我的要求是,当任何一行中的 TextField 值发生变化时,所有行中的所有按钮都需要被禁用。

有没有一种方法可以让我与每个按钮进行交互来遍历行?

如果需要更新Grid的行,方法是调用

grid.getDataProvider().refreshAll();

它将使 Grid 迭代视图中的项目并重新生成它们的数据/组件。

所以在你的情况下你会有类似

的东西
boolean done = false; // class field
...
grid.addComponentColumn(item -> {
   TextFiled field = new TextField();
   field.setValue(item.getProperty()); // Populate field
   field.addValueChangeListener(event -> {
       item.setProperty(event.getValue());
       done = true;
       grid.getDataProvider().refreshAll();
   });
});
grid.addComponentColumn(item -> {
    Button button = new Button("Button");
    button.setEnabled(!done);
    return button;
});

Vaadin 14.5.3.

旁注,14.5.3 是旧版本。在撰写本文时,14.8.2 是最新的。您应该定期更新您的框架版本,以便及时更新安全修复和错误修复。