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 中得到修复。
在 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 中得到修复。