单击展开呈现<p:panel>内容

时间:2016-11-29 01:33:19

标签: javascript jquery jsf primefaces frontend

目前我有一个带有JSF的开发前端,它加载了太多的数据,并不是用户需要的所有情况,这个提到的数据除以标签,我需要通过点击展开面板动态呈现的信息:

        <p:panel header="#{myBean.someStringTittle}"
            id="information1" toggleable="true" rendered="true" collapsed="true">

                    <h:panelGrid>
                        <h:outputText
                            value="#{mybean.someVale]}" />
                        <p:inputText readonly="true">
                                ......
                                ......
        <p:panel>

在许多情况下,用户不需要查看该面板内的信息,该属性已折叠=&#34; true&#34;加载面板关闭,但面板内的信息已呈现,我只需要在用户展开面板时才呈现该信息。

我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可能想尝试为'tabChange'和/或'tabClos​​e'事件编写事件处理程序。根据激活的选项卡,将内容动态加载到辅助bean中。然后当网页刷新时,它会显示内容。

这是手风琴组的Primefaces展示案例的“Change Event”示例。

http://www.primefaces.org/showcase/ui/panel/accordionPanel.xhtml

答案 1 :(得分:0)

我认为你可以使用只有一个标签的p:accordionPanel来做到这一点:

<p:accordionPanel dynamic="true" cache="true">
    <p:tab title="Godfather Part I">
        <h:panelGrid columns="2" cellpadding="10">
            <p:graphicImage name="demo/images/godfather/godfather1.jpg" />
            <h:outputText
                value="The story begins as Don Vito Corleone..." />
        </h:panelGrid>
    </p:tab>
</p:accordionPanel>

或在现有panel

上加p:ajax
<p:ajax event="toggle" listener="#{myBean.onToggle}" update="information1" />

<h:panelGrid rendered="#{myBean.boole}">

并在onToggle()中将boole设置为true。