1

私はJSFでRichFacesを使用して単純なアプリを開発しています。このアプリの 1 つのページには、いくつかの collapsiblePanel 要素が含まれています。collapsiblePanel 要素の一部はネストされていますが、2 層以上になることはありません。

ページ上のすべての 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>
4

2 に答える 2

0

個々のパネルをクリックしてからすべてを展開/折りたたむと、同じ問題が発生しました。これは私にとってはうまくいきます(richfaces 4.2.3):

<h:commandButton  immediate="true" action="#{controllerBean.toggleMin}"  value="collapse all" >
    <a4j:ajax render="panel1 panel2"></a4j:ajax>
</h:commandButton>
<h:commandButton immediate="true" action="#{controllerBean.toggleMax}" value="expand all">
    <a4j:ajax render="panel1 panel2"></a4j:ajax>
</h:commandButton>
...
<rich:collapsiblePanel id="panel1" immediate="true" expanded="#{modelBean.expanded}" header="Title text" switchType="client">
    ...
</rich:collapsiblePanel>
...
于 2014-05-29T10:18:07.460 に答える