0

我正在寻找将自动完成应用于带有名称列表的 wicket 8 dropdownchoice 的最简单方法。

我只是想要一个提示..

List<User> list = getUsers();

final DropDownChoice<User> dropdown = new DropDownChoice<User>("dropdown",
                new PropertyModel<User>(this, "selected"), list, renderer) { //code };
4

2 回答 2

0

我正在使用这段代码,但我不确定它是否运行良好..

dropdown.add(new AutoCompleteBehavior(new StringAutoCompleteRenderer()){
                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;

                @Override
                protected Iterator getChoices(String input) {
                    List<String> completions = new ArrayList();
                    Iterator iter = list.iterator();
                    while(iter.hasNext()){
                        String user  = ((User) iter.next()).getAddress();
                        if(user.startsWith(input)){
                            completions.add(user);
                        }
                    }                   
                    return completions.iterator();
                }               
            });
于 2018-11-21T17:12:35.477 回答
0

DropDownChoice 组件生成纯 HTML<select>元素。

您的选择是:

  1. 使用 JavaScript 库,将纯 HTML Select 元素转换为自动完成器,如Select2.jsChosen.js等。您可以使用WicketStuff-Select2$.select2('#yourSelectId')手动执行
  2. 使用 Wicket-Extensions AutoCompleteTextField而不是 DropDownChoice
于 2018-11-21T16:28:53.707 回答