2016-11-28 1 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는"경우에 한해 "렌더링"하는 데 필요한 사용자 요약 탭 2 탭을 클릭합니다.

어떻게하면됩니까?

답변

0

PrimeFaces의 TabView 구성 요소를 사용하는 경우 단순히 동적 속성을 true로 설정할 수 있습니다.

동적 탭이 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

완료! 사용자가 패널을 펼치면 "

관련 문제