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 是最新的。您应该定期更新您的框架版本,以便及时更新安全修复和错误修复。
我正在 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 是最新的。您应该定期更新您的框架版本,以便及时更新安全修复和错误修复。