2016-11-28 7 views
1

現在、私は、あまりにも多くのデータを読み込むJSFで開発されたフロントエンドを持っていますが、これはユーザーが必要とするすべてのケースではありません。一つの条件に基づいてレンダリングされます。ユーザーはそのタブ内の情報を確認する必要はありません。多くの場合JSFでPannelGroupをレンダリングするp:tab

<p:tab id="summary-tab2" title="Tittle of tab" 
          rendered="#{(myBean.SomeCondition)}"> 
<ui:insert name="summary-tab-characteristics"> 
     <h:panelGroup id="panelData"> 
      <ot:otherJSF id="otherHtml" application="#someBean}"/> 
     </h:panelGroup> 
    </ui:insert> 
</p:tab> 

ので、私はPanelGroup「PanelDataは」場合にのみ、「レンダリング」する必要があるユーザー[Summary-tab2]タブをクリックします。

どうすればいいですか?

答えて

0

PrimeFacesのTabViewコンポーネントを使用している場合は、単にdynamic属性をtrueに設定するだけです。

ダイナミックタブ

2 tabview、非ダイナミック(デフォルト)でtoggleModesと ダイナミックがあります。デフォルトでは、すべてのタブの内容はクライアントにレンダリングされ、 の場合は動的モードになり、アクティブなタブの内容は と表示され、非アクティブなタブヘッダーが選択されている場合は内容は にajaxが読み込まれます。動的なモードは、 の非アクティブなタブが遅延ロードされているため、ページサイズを減らすのに便利です。 動的ロードを有効にするには、dynamicオプションをtrueに設定するだけです。

<p:tabView dynamic="true"> 
//tabs 
</p:tabView> 

とパネルと:

<p:panel collapsed="true" header="title" toggleable="true"> 

     <f:ajax event="toggle" listener="#{bean.makeTheConditionTrue()}"render="@this" /> 

     <ui:fragment rendered="#{bean.condition}"> 

      //your content 

     </ui:fragment> 

    </p:panel> 

しかし、この方法で、コンテンツはすべてのトグルイベントに更新されます。私はあなたがそのようなことをしたいとは思わない。

+0

これは機能します!どうもありがとうございました! –

+0

これがあなたが探していたものであれば、この答えの左側のチェックをクリックすることができます。 – sunofkyuss

+0

完了!私は、ユーザーがパネルを展開した場合、 "

関連する問題