Vaadin 8 网格编辑器保存监听器

Vaadin 8 Grid EditorSaveListener

在 Vaadin 8 中,给定以下网格定义:

    grid = new Grid<>();
    grid.getEditor().setEnabled(true);
    carBinder = grid.getEditor().getBinder();

与:

    grid.getEditor().addSaveListener(event -> {
    try {
        Binder<Car> binder = event.getSource().getBinder();
        grid.getDataProvider().refreshAll();
    } catch(Exception e) 
        ExceptionNotification.show(e);
    }
    });

我遇到的问题是,我目前无法从网格编辑器访问修改后的值,无论是通过 event.getSource() 还是通过活页夹,在本地或在class 范围。

在调试器中,我在 Vaadin class com.vaadin.ui.components.grid.EditorImpl 中看到一个 属性 已编辑,包含值,但是是私有的,所以无法访问。

调试中binder.bean值为NULL。这将是通过以下方式检索的值:binder.getBean().

所以我尝试了很多方法,但目前我无法通过保存侦听器获取编辑后的值,无法使用它,并搜索一些帮助或灵感来解决问题。

要获取值,请使用:

binder.writeBean(aCarObject);

根据文档,它将字段的值写入给定对象,但如果任何字段无效,则会抛出异常。

我运行遇到了同样的问题。经过调查,我得知它将在即将发布的 Vaadin 8.0.3 中得到修复。

https://github.com/vaadin/framework/issues/8658