如何从PrimeFaces切换多个面板?

时间:2015-07-28 11:35:10

标签: primefaces toggle panel

我有一个Datagrid,它是动态创建的,每行有1个面板。我将一个widgetVar设置为我的面板,用这样的命令链切换所有面板:

    <p:panel  style="text-align:center;" id="horizontalPanel" toggleable="true" collapsed="true" toggleOrientation="horizontal" name="panelForComments" widgetVar="panel">
          <p:ajax event="toggle" listener="#{panelView.onToggle}" />
            <h:panelGrid columns="1" style="width:100%" cellpadding="10">
                            // more stuff
            </h:panelGrid>
    </p:panel>  

此外我有一个commandLink,它应该打开我的所有面板。它看起来像这样:

<p:commandLink value="hide"  onclick="PF('panel').toggle()" update="@form">
                                </p:commandLink>

问题是我的数据网格中的最后一个面板是否已被删除。有没有人知道如何使用p:commandLink打开/关闭所有面板?

1 个答案:

答案 0 :(得分:1)

我的方法是创建一个<div class="toggleable-panel">来包装所有可切换面板,并创建一个javascript函数来切换所有面板。

function toggleAll()
{
    if($('#toggleAll_input').prop('checked'))
    {
        $('.toggleable-panel').each(function () {
            PF($(this).attr("data-widget")).collapse();
        });
    }
    else
    {
        $('.toggleable-panel').each(function () {
            PF($(this).attr("data-widget")).expand();
        });
    }
}