我有一个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打开/关闭所有面板?
答案 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();
});
}
}