我有一个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代码中被清除的位置?我试过一次,但有点迷失在细节中。
答案 0 :(得分:0)
好的,我找到了自己问题的答案。在我的情况下,我的问题是由包装bean引起的,我也绑定了字段。我的bean包含两个"子bean",如果你愿意,一个用于输入XML,一个用于输出到XML。输入"输入"应该填写表格(电话"得到"方法),但是#34;输出"应填写表格中的数据(调用"设置"方法)。这显然不太理想,但这是我坚持使用的API。为了解决这个问题,我确保所有包装器都能得到"检查方法"输入" bean首先,然后"输出"豆。对于" set"方法,我只是确保我设置"输入"和"输出"豆子。就像我说的那样,并不理想。
总结一下:如果你看到你的ComboBox值消失了,那么确保你绑定的bean不会撤消ComboBox在相应的" setter"中设置的内容。和" getter" (在引擎盖下,我相信它设置它,然后再次获得它。)
希望这可以帮助别人犯同样的错误。