在基於Vaadin 8的應用程序中,我想實現刪除所有字段值的命令。我已經完成了這個使用活頁夾。當用戶激活命令時,將創建一個新的Bean。如何確定用戶界面中的組件是否已在Vaadin 8中更新
@Override public void menuSelected(MenuBar.MenuItem selectedItem) {
controller.createNewBean();
Page.getCurrent().reload();
}
我想顯示一個消息框給用戶,警告通過繼續處理所有組件的所有值將會丟失。我正在使用TabView,並且有相對較多的組件。
我想僅在用戶更改了至少一個組件的值時才顯示此消息。 我想知道Vaadin是否有類似UI.getCurrent().isDirty()
或其他機制來確定用戶是否爲組件輸入了新值?
感謝您的幫助
謝謝@Axel Meier。這似乎是唯一的方法是binder.hasChanges()。問題是我有不同的豆和不同的選項卡,我必須知道許多粘合劑。因爲這個,我正在使用reload而不是readBrean。 – Govan
我用binder hasChanges測試了實現。它不像文檔中描述的那樣工作。看到這個:https://vaadin.com/forum/#!/thread/14906891/15007809 – Govan
@Govan謝謝你的反饋。事實上,'hasChanges()'與'readBean()'和'writeBean()'結合使用更有意義。用'setBean()'改變會自動提交'hasChanges()'將返回false。同樣用'setBean()'也無法恢復舊值。 –