簡體   English   中英

Vaadin ComboBox清除選擇

[英]Vaadin ComboBox clearing selection

我有一個ComboBox定義如下:

private final ComboBox classification = new ComboBox( "Class" );
classification.addItem("C");
classification.setItemCaption("C", "Company");
classification.addItem("S");
classification.setItemCaption("S", "Supplier");
classification.addItem("U");
classification.setItemCaption("U", "Customers");
classification.setRequired(true);
classification.setRequiredError("A user class must be chosen!");
classification.setFilteringMode(FilteringMode.CONTAINS);
classification.setTextInputAllowed(true);

每當我從下拉列表中選擇任何值時,它都會立即清除我選擇的內容。 我什至沒有在“ ValueChange”偵聽器中看到它。

奇怪的是,我從另一張狀態良好的國家(地區)下拉菜單中復制了此表格。 我不是從下拉列表中選擇無效的值。 知道發生了什么嗎?

如果沒有,我在調試器中設置一個斷點以查看在ComboBox代碼中將其清除的地方有什么主意嗎? 我試過一次,但是細節上有些迷路。

好的,我找到了自己問題的答案。 就我而言,我的問題是由我也綁定字段的包裝器豆引起的。 我的bean包裝了兩個“子bean”(如果可以的話),一個用於XML的輸入,另一個用於XML的輸出。 用於“輸入”的一個應填寫表格(稱為“ get”方法),但用於“輸出”的一個應填寫表格中的數據(稱為“ set”方法)。 這顯然不是理想的,但這是我堅持使用的API。 為了解決這個問題,我只是確保所有包裝器的“ get”方法都首先檢查“ input” bean,然后檢查“ output” bean。 對於“ set”方法,我只是確保同時設置了“ input”和“ output” bean。 就像我說的那樣,並不理想。

總結一下:如果您看到ComboBox值消失了,請確保綁定到的bean不會撤消ComboBox在相應的“ setter”和“ getter”中設置的任何內容(在幕后,我相信它將對其進行設置,然后得到再次)。

希望這可以幫助別人不要犯同樣的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM