我正在使用带有 JSF 的 RichFaces 来开发一个简单的应用程序。此应用程序的一页包含多个 collapsiblePanel 元素。一些 collapsiblePanel 元素是嵌套的,但不会超过第二层。
我想在页面上提供链接或按钮来展开和折叠页面上的所有 collapsiblePanel 元素。我怎样才能做到这一点?
元素当前使用该switchType="client"
属性让客户端处理展开和折叠。我怀疑使用一种ajax
代替可能会有所帮助,但我不确定也不知道如何利用它。
更新:如果我包含一个我正在尝试做的例子,我的问题可能更容易理解:
<h:form>
<a4j:commandButton actionListener="#{bean.setDefaultExpanded(true)}"
render="reportPanel" value="Expand all" />
<a4j:commandButton actionListener="#{bean.setDefaultExpanded(false)}"
render="reportPanel" value="Collapse all" />
<h:panelGrid id="reportPanel">
<ui:repeat var="account" value="#{bean.results.entrySet().toArray()}">
<rich:collapsiblePanel expanded="#{bean.defaultExpanded}">
<ui:repeat var="chargeGroup" value="#{account.value.entrySet().toArray()}">
<rich:collapsiblePanel expanded="#{bean.defaultExpanded}">
<h:outputText value="content: #{chargeGroup.value}" />
</rich:collapsiblePanel>
</ui:repeat>
</rich:collapsiblePanel>
</ui:repeat>
</h:panelGrid>
</h:form>