如何让GWT SuggestBox从建议显示中自动选择第一个匹配?

时间:2014-02-02 09:23:22

标签: java gwt extjs

我在我的应用中使用GWT SuggestBox作为自动选择字段。我正在使用GWT 2.5.1。我注意到它不会从弹出显示中自动选择第一个匹配,除非我们按回车键。对于例如让我们说该列表包含4个项目: 1.阿拉巴马州 阿拉斯加 亚利桑那州 阿肯色州

如果我输入A,那么第一个选择即Alabama应该出现在文本框中,“labama”选择为蓝色。它应该与GXT Combobox类似。

http://www.sencha.com/examples/#ExamplePlace:combobox

不幸的是,SuggestBox和SuggestionDisplay的所有方法都是私有的,所以做不了多少。有人做过这种事吗?

任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

我实施了类似的方案。

您可以使用SuggestBox并公开一个将输入作为MultiWordSuggestOracle列表的方法。

在初始化时,只需将所有建议列表作为输入参数,然后如果键入任何字母,它将相应地给出建议。

以下是代码:

              import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
              import com.google.gwt.user.client.ui.SuggestBox;



               public class MySuggestBox extends SuggestBox  {

public MySuggestBox() {

    super();

    super.setLimit(Constants.SUGGESTBOX_LIMIT);
    super.setValue(Constants.SUGGESTBOX_VALUE);
    super.setVisible(Constants.SUGGESTBOX_VISIBLE);
    super.setAutoSelectEnabled(Constants.SUGGESTBOX_AUTOSELECTENABLE);



}

public MySuggestBox(MultiWordSuggestOracle list) {

    super(list);

}

public MySuggestBox(String text) {

    this();

    super.setText(text);
    super.setTitle(text);
}

public MySuggestBox(String text,String title) {

    this(text);

    super.setTitle(title);

}



            }