Vaadin 14网格-如何迭代网格行中的所有按钮



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

我的要求是,当任何行中的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是最新的。你应该定期更新你的框架版本,以便及时更新安全修复和错误修复。

最新更新