如何根据行项目在Vaadin Grid Pro的editComponent中设置不同的选择项



我有Grid Pro显示产品。单个列被配置为类型为"select"(下拉/组合框)的EditColumn。我试图根据该行的Product为该组件设置项。这是可能的使用'选择' editColumn吗?

我试图实现我想要使用网格的'addCellEditStartedListener'事件,但我似乎无法从CellEditStartedEvent访问editComponent .

谢谢!

是的,这是CellEditStartedEvent中缺少的功能。作为一种选择,您可以在编辑列中使用自定义编辑器,因为这样您就可以引用您正在使用的字段,参见示例

// Use custom editor
EmailField emailField = new EmailField();
emailField.setWidth("100%");
emailField.addThemeName("grid-pro-editor");
grid.addEditColumn(Person::getEmail)
.custom(emailField, (item, newValue) -> {
item.setEmail(newValue);
}).setHeader("E-mail ");
// Use edit started listener to set the field conditionally enabled
grid.addCellEditStartedListener(event -> {
if (!event.getItem().isSubscriber()) {
emailField.setReadOnly(true);
} else {
emailField.setReadOnly(false);
}
});

完整代码在这里:https://cookbook.vaadin.com/grid-pro-conditional-edit

最新更新