【问题标题】:How do I add child elements to a SelectOption?如何将子元素添加到 SelectOption?
【发布时间】:2018-03-12 14:18:15
【问题描述】:

如何将子元素添加到 org.apache.wicket.extensions.markup.html.form.select.SelectOption

我尝试了以下方法:

SelectOption<String> wicketSelectOption = new SelectOption<String>("option", new Model<>(selectOption.getValue()));
wicketSelectOption.setRenderBodyOnly(false);
wicketSelectOption.setEscapeModelStrings(false);


Label label = new Label("optionLabel", "<i class=\"icon\"></i>" + selectOption.getLabel());
label.setEscapeModelStrings(false);

wicketSelectOption.add(label);

结果:

标签被完全忽略

【问题讨论】:

  • 你想在这里归档什么? SelectOption 属于 &lt;option&gt; 标记,除了简单的文本内容 (developer.mozilla.org/en-US/docs/Web/HTML/Element/option) 之外,不允许有任何内容。如果你想要一个带有图像/图标的下拉菜单,你要么需要使用不同于简单选择的东西,要么尝试使用样式对其进行归档:How to add a images in select list
  • @OHGODSPIDERS 为每个选项显示一个图标
  • 查看 DropDownChoice,也许它会对您有所帮助。它可以有一个选择列表。

标签: java apache wicket


【解决方案1】:

您需要在标记中添加optionLabel 作为子项:

<option wicket:id="option">
    <wicket:container wicket:id="optionLabel"/>
</option>

我建议使用类似的东西:

<option wicket:id="option">
    <i wicket:id="optionIcon"/> <wicket:container wicket:id="optionLabel"/>
</option>

这样您就可以完全控制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    相关资源
    最近更新 更多