2016-11-28 16 views
1

目前我有一個JSF開發的前端,它加載了太多的數據,這並不是用戶需要的所有情況,這個提到的數據除以Tab「」基於一個條件被渲染:在JSF上渲染一個PannelGroup,點擊p:選項卡

<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組件,您可以簡單地將動態屬性設置爲true。

動態標籤

目前正處在TabView的,非動態(默認)兩大toggleModes和 動態。默認情況下,所有標籤頁內容都呈現給客戶端, 另一方面在動態模式下,只有活動標籤頁內容爲 呈現,當選擇非活動標籤頁頭時,內容爲 加載了ajax。動態模式在減少頁面大小方面很有用,因爲 非活動標籤被延遲加載,頁面加載速度會更快。要啓用 動態加載,只需將動態選項設置爲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

完成!如果用戶擴展面板,我想要做「