我在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>
非常感谢!
最简单的方法也是为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>
。