【问题标题】:Is it possible to change the wicket output?是否可以更改检票口输出?
【发布时间】:2012-05-30 05:21:54
【问题描述】:

你好, 我想知道是否可以更改检票口输出 html 代码。例如对于组件“CheckBoxMultipleChoice”,您将获得以下 html 输出。

<span wicket:id="letters">
<input name="letters" type="checkbox" value="0" id="letters_0"/><label for="letters_0">fff</label><br/>
<input name="letters" type="checkbox" value="1" id="letters_1"/><label for="letters_1">aaa</label><br/>
<input name="letters" type="checkbox" value="2" id="letters_2"/><label for="letters_2">bbb</label><br/>
<input name="letters" type="checkbox" value="3" id="letters_3"/><label for="letters_3">ccc</label><br/>
<input name="letters" type="checkbox" value="4" id="letters_4"/><label for="letters_4">ddd</label><br/>
</span>

如果我不想要&lt;br/&gt; 标签,我该怎么办? 问候

【问题讨论】:

    标签: html components wicket


    【解决方案1】:

    这取决于组件。

    对于任何基于Panel 的内容,您始终可以子类化组件 (MyPanel.java) 并提供不同的标记文件 (MyPanel.html)。只要您在其中有相同的wicket:ids,它就可以正常工作。

    对于在其源代码中嵌入了标记元素的内置 Wicket 组件,例如 CheckBoxMultipleChoice,您将受制于组件的自定义 API。在您的情况下,您似乎想要CheckBoxMultipleChoice#setSuffix

    【讨论】:

      【解决方案2】:

      不,摘自documentation

      组件可以更改它们的引用标签、替换标签的主体或在标签后插入标记。但是组件不能从标记流中删除标签。这是一个重要的保证,因为图形设计师可能会在组件标签上设置影响视觉呈现的属性。

      但是,如果您想在组件之间添加/删除新的行间距,您可以将组件的显示更改为块/内联

      @Override
      protected void onComponentTag(ComponentTag tag) {
          super.onComponentTag(tag);
          //block or inline 
          tag.put("style", "display:block");
      }
      

      或使用 CSS 类

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-18
        • 2019-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多