我有一个块级元素,一个容器,当它的所有子 Wicket 元素(按钮)都被隐藏时,它应该被隐藏。换句话说,如果任何子按钮可见,则容器应该可见。
早些时候,如果有任何按钮,其中一个按钮总是可见的,因此我使用该按钮来控制 a 的可见性<wicket:enclosure>
,纯粹在 HTML 端处理所有这些。
现在,规格已更改,因此按钮可以独立隐藏/可见,因此简单的外壳将不再起作用(我认为)。
我得到它的工作是这样的:
HTML:
<wicket:container wicket:id="downloadButtons">
<wicket:message key="download.foo.bar"/>:
<input type="button" wicket:id="excelDownloadButton" wicket:message="value:download.excel"/>
<input type="button" wicket:id="textDownloadButton" wicket:message="value:download.text"/>
<!-- etc ... -->
</wicket:container>
爪哇:
WebMarkupContainer container = new WebMarkupContainer("downloadButtons");
// ... add buttons to container ...
boolean showContainer = false;
Iterator<? extends Component> it = container.iterator();
while (it.hasNext()) {
if (it.next().isVisible()) {
showContainer = true;
break;
}
}
addOrReplace(container.setVisible(showContainer));
但是 Java 方面现在有点冗长和丑陋,我在想可能有一种更清洁的方法来做同样的事情。在那儿?当容器的所有子组件都不可见时,您能否以某种方式“自动”隐藏容器(及其所有附加标记)?
(Wicket 1.4,如果重要的话。)