在Wicket DropDownChoice中,如何将"选择一个"替换为另一个文本

Gol*_*lie 9 wicket default-value dropdownchoice

我有一个DropDownChoice如下:

    final DropDownChoice<Term> terms = new DropDownChoice("terms", new Model<Term>(), new Model(new ArrayList(termDao.findAll())), new IChoiceRenderer<Term>() {
        public Object getDisplayValue(Term object) {
            return object.getIdentifier();
        }

        public String getIdValue(Term object, int index) {
            return object.getId().toString();
        }
    });
Run Code Online (Sandbox Code Playgroud)

我想要"全选"而不是"选择一个".我怎样才能做到这一点?

小智 9

我在wicket 6.4下尝试了Goli的建议,但它不起作用.对我来说,正确的方法是:

  1. 没有必要设置terms.setMarkupId("termsDDC"); 没有它它会工作

  2. 正如上面所说,如果你在面板上有一个表单(wicket:id ="form")和表单上的DropDownChoice(wicket:id ="terms"),那没关系,你应该将.properties文件命名为mypanel.properties

  3. 在属性文件中写:form.terms.null =选择All或form.terms.nullValid = Empty,如果下拉列表有setNullValid(true)


Gol*_*lie 6

  1. 为DropDownChoice设置标记ID: terms.setMarkupId("termsDDC");

  2. .properties为表单/面板/页面创建一个文件.例如:mypanel.properties

  3. 在属性文件中写: termsDDC.null=Choose All

参考:https://cwiki.apache.org/WICKET/dropdownchoice.html


And*_*ndy 6

我正在使用wicket 6.14(不确定它引入了哪个版本),你可以覆盖getNullKeyDisplayValue(),所以你会有这个:

final DropDownChoice<Term> terms = new DropDownChoice("terms", new Model<Term>(), new Model(new ArrayList(termDao.findAll())), new IChoiceRenderer<Term>() {
    @Override
    protected String getNullKeyDisplayValue() {
        return "Choose All";
    }

    public Object getDisplayValue(Term object) {
        return object.getIdentifier();
    }

    public String getIdValue(Term object, int index) {
        return object.getId().toString();
    }
});
Run Code Online (Sandbox Code Playgroud)