10

我有一个如下所示的 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();
        }
    });

我想要“全选”而不是“全选”。我怎样才能做到这一点?

4

5 回答 5

9

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

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

  2. 和上面一样,如果面板上有一个表单(wicket:id="form"),表单上有一个 DropDownChoice(wicket:id="terms"),没关系,你应该将 .properties 文件命名为我的面板属性

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

于 2013-07-19T13:16:39.417 回答
6
  1. 为您的 DropDownChoice 设置标记 ID。:terms.setMarkupId("termsDDC");

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

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

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

于 2012-01-10T09:16:05.853 回答
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();
    }
});
于 2014-06-20T11:20:12.277 回答
0

我使用了两种方法:

AbstractSingleSelectChoice#getNullKeyDisplayValue(), AbstractSingleSelectChoice#getNullValidDisplayValue()

它们都可以通过 DropDownChoice 访问

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

如果 DropDownChoice 有 setNullValid(true) 方法:

     @Override
     protected String getNullValidDisplayValue() {
        return "Choose All";
     }
于 2017-02-16T14:39:58.637 回答
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);

也许您想根据“选定”对象向选项标签添加其他内容。看一下默认实现的 super.getDefaultChoice(Object selected) 方法。

于 2017-05-02T08:23:51.177 回答