如何解决如果 HTML 元素包含的所有 Wicket 组件都不可见,则隐藏该元素
我有一个 HTML 元素,如果其包含的 Wicket 组件 foo
不可见,则该元素将被隐藏。
<span class="ig" wicket:enclosure="foo">
<span class="iga">
<span wicket:id="foo"/>
</span>
</span>
现在我必须添加第二个 Wicket 组件 bar
,并且仅当 foo
或 bar
可见时外壳才会显示。像这样:
<span class="ig" wicket:enclosure="foo-or-bar???">
<span class="iga">
<span wicket:id="foo"/>
<span wicket:id="bar"/>
</span>
</span>
但是怎么样?一种复杂情况是,组件的可见性可能会因 AJAX 事件而改变。
解决方法
将逻辑移到您的 Java 代码中!
Component foo = ...
Component bar = ...
WebMarkupContainer wrapper = new WebMarkupContainer("wrapper") {
@Override public void onConfigure() {
super.onConfigure();
foo.configure();
bar.configure();
setVisible(foo.isVisible() && bar.isVisible());
}
};
wrapper.add(foo);
wrapper.add(bar);
add(wrapper);
<span class="ig" wicket:id="wrapper">
<span class="iga">
<span wicket:id="foo"/>
<span wicket:id="bar"/>
</span>
</span>
附言我建议您在几乎所有情况下都避免使用 wicket:enclosure
!有很多极端情况下它会破裂。您可以查看 Wicket JIRA 以获取示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。