在Wicket DropDownChoice中你怎么能取代"选择一个"另一个文字

时间:2012-01-09 11:24:53

标签: 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();
        }
    });

我希望“全选”而不是“选择一个”。我怎么能这样做?

5 个答案:

答案 0 :(得分:9)

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

  1. 没有必要设置terms.setMarkupId(“termsDDC”);没有它就可以使用

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

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

答案 1 :(得分:6)

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

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

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

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

答案 2 :(得分: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();
    }
});

答案 3 :(得分:0)

我使用了两种方法:

AbstractSingleSelectChoice#getNullKeyDisplayValue(),AbstractSingleSelectChoice#getNullValidDisplayValue()

都是通过DropDownChoice访问的

 @Override
 protected String getNullKeyDisplayValue() {
    return "Choose All";
 }

如果DropDownChoice有setNullValid(true)方法:

     @Override
     protected String getNullValidDisplayValue() {
        return "Choose All";
     }

答案 4 :(得分:0)

在较旧的Wicket版本中(可能也适用于较新版本),您可以执行以下操作(在Wicket 1.3.7中测试):

Dropdownchoice dropdown = new DropDownChoice("dropdown", list)
{
    @Override
    protected CharSequence getDefaultChoice(Object selected)
    {
        return "<option value=\"\">" + "MY placeholder text" + "</option>";
    }
};
dropdown.setNullValid(true);

根据对象&#34;选择&#34;,您可能希望在option-tag中添加其他内容。看一下默认实现的super.getDefaultChoice(Object selected)方法。