2011-03-26 43 views
5

当创建一个GXT SimpleComboBox(作为公认的答案here),GXT(分机GWT)问题SimpleComboBox

final FormPanel fp = new FormPanel(); 

    SimpleComboBox<String> combo = new SimpleComboBox<String>(); 
    combo.add("One"); 
    combo.add("Two"); 
    combo.add("Three"); 
    combo.setSimpleValue("Two"); // I'd like to preselect that value 

    fp.add(combo); 
    RootPanel.get().add(fp); 

我的组合框只包含数值 “2”。值“One”和“Three”完全从组合框中删除。这不会发生,当我删除线combo.setSimpleValue("Two");

我使用GXT 2.2.3和GWT 2.2.0(在Linux/Firefox和Linux/Chrome上测试)。这是一个错误/它在旧版本的GXT/GWT中工作,还是我做错了什么?

更新

我接受了答案,这解决了这个问题:添加行

combo.setTriggerAction(TriggerAction.ALL); 

但我仍然在寻找一个解释!

回答

4

试过来这里吗? SimpleComboBox Problem in GWT

+0

感谢您的回答。链接的论坛线程确实有助于解决问题(插入'combo.setTriggerAction(TriggerAction.ALL);'),但它*没有帮助我理解*,为什么我需要这样做,或者为什么旧的行为是错误。为什么'setSimpleValue'移除其他值?这对我没有任何意义。 – 2011-03-27 10:10:13

+0

它没有意义,但它就是这样。我也遇到过这个问题。 – 2011-03-29 13:17:46

0

你可能需要设置combo.setForceSelection(true);

8

我想这是通过组合框的过滤功能引起的。这可以通过检查字符串输入并尝试将其与商店中的值进行匹配 - 然后仅显示它认为与字符串输入相关的那些项目。

由于您已将“two”设置为默认值,因此认为有人在其中写入了“two”,并尝试通过仅显示键入“two”时可以想到的那些值来帮助您。

+0

当然!最后一个解释是有道理的。谢谢。 – 2011-05-26 09:58:13