使用Wicket隐藏Fiedset HTML元素

问题描述 投票:0回答:1

我在HTML页面中有一个fieldset元素,在某些情况下我想隐藏它。

我通常会这样隐藏标签。

HTML文件

<label class="optional"><wicket:message key="myLabel" /></label>

JAVA文件

Label myLabel = new Label("myLabel", new ResourceModel("my.label"));
if (true) {
   myLabel.setVisible(false);
}

我如何隐藏它?

HTML文件

<fieldset class="field_set">
    <legend>
        <wicket:message key="anotherLabel"/>
    </legend>
</fieldset>

非常感谢!

wicket wicket-6
1个回答
0
投票

最简单的方法也是为fieldset也有一个Java组件:

WebMarkupContainer fieldset = new WebMarkupContainer("fieldsetId");
add(fieldset);
fieldset.add(new Label("anotherLabel", ...));
...
if (condition) {
   fieldset.setVisible(false);
}


<fieldset class="field_set">
    <legend>
       <wicket:container wicket:id="anotherLabel"/>
    </legend>
</fieldset>

如果要让标签控制字段集的可见性,则可以使用WebMarkupContainer代替EnclosureContainer

Label label = new Label("anotherLabel", ...);
EnclosureContainer fieldset = new EnclosureContainer("fieldsetId", label);
add(fieldset);
fieldset.add(label);
...
if (condition) {
   label.setVisible(false);
}

注意:由于<wicket:message><wicket:container>的非Java版本,因此我已将wicket:message的用法更改为new Label(id, new ResourceModel(key))。您应该使用其中一个。当您需要更多控制时,例如在控制可见性的情况下,应使用Java版本。当您希望Wicket仅渲染textContent而没有任何HTML元素时,可以使用wicket:container。如果您不希望拥有HTML元素,则可以改用<span>

© www.soinside.com 2019 - 2024. All rights reserved.