在Vaadin 8,給出下面的網格定義:Vaadin 8網格EditorSaveListener
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(),也不在本地或在類作用域中定義的活頁夾上。
在調試器中,我看到Vaadin類com.vaadin.ui.components.grid.EditorImpl一個編輯過的屬性,包含這些值,但是是私有的,因此無法訪問。
調試中的binder.bean值爲NULL。這將是由binder.getBean()檢索的值。
所以我嘗試了很多方法,但目前我無法使用保存監聽器獲得編輯值,因此無法使用它,並搜索一些幫助或靈感來解決問題。
你試過'binder.writeBean(aCarObject)'來獲取值?根據文檔,它將字段的值寫入給定的對象,但如果任何字段無效則拋出異常。 –
謝謝。作品。有一個getBean()操作時,使用寫操作來獲取數據是很奇怪的。 但它的工作。 – Lexx
太好了。我在下面添加了答案,所以你可以檢查它。 :) –