通过单击p:选项卡在JSF上渲染PannelGroup

时间:2016-11-28 01:16:56

标签: jquery html jsf jsf-2.2

目前我已经开发了一个带有JSF的前端,它加载了太多的数据,并不是用户需要的所有情况,这个提到的数据除以基于一个条件呈现的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>

在许多情况下,用户不需要查看该选项卡内的信息,因此,当且仅当用户单击“Summary-tab2”选项卡时,我需要PanelGroup“PanelData”来“渲染”。

我怎么能这样做?

1 个答案:

答案 0 :(得分: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>

但通过这种方式,内容将在每个切换事件中更新。我不确定你想要那样的东西。