Primeface 面板在对话框关闭后不会更新折叠状态



我看到Primefaces(4.0)与面板相关的奇怪行为,其折叠属性绑定到支持Bean中的属性。更新状态工作正常,因此当后备 Bean 的值更改时,面板会正确折叠/展开。问题是:我有一些p:Dialogs可以打开以输入一些附加/可选信息。关闭对话框后,更改值时面板无法展开/折叠。奇怪的是,绑定到同一属性的其他属性会像以前一样更新。

示例
两个面板的 XHTML,其折叠的属性绑定到属性。请注意,复选框的 disabled-属性绑定到同一属性,并且在对话框关闭后仍会更新。

<p:panel id="panel1" style="width:80%;" toggleable="true" collapsed="#{!bean.panel1.enabled}" widgetVar="panel1Var">
        <f:facet name="header">
        <p:outputLabel value="Panel1"/>
        <p:selectBooleanCheckbox id="p1_enabled" style="margin-left:20px;" disabled="#{bean.panel2.enabled}" value="#{bean.panel1.enabled}">
        <f:ajax  render="panel1 panel2" />
        </p:selectBooleanCheckbox>
</f:facet>  
    <p:panelGrid columns="2" style="width:100%;" columnClasses="input-col1,input-col2">
    <!-- omitted -->
    </p:panelGrid>
</p:panel>
<p:panel id="panel2" style="width:80%;" toggleable="true" collapsed="#{!bean.panel2.enabled}" widgetVar="panel2Var">
        <f:facet name="header">
        <p:outputLabel value="Panel2"/>
        <p:selectBooleanCheckbox id="p2_enabled" style="margin-left:20px;" disabled="#{bean.panel1.enabled}" value="#{bean.panel2.enabled}">
        <f:ajax  render="panel1 panel2" />
        </p:selectBooleanCheckbox>
</f:facet>  
    <p:panelGrid columns="2" style="width:100%;" columnClasses="input-col1,input-col2">
    <!-- omitted -->
    </p:panelGrid>
</p:panel>

XHTML在同一页面上的其他地方打开一个对话框:

<p:commandLink id="contactbutton" onclick="PF('contactextended').show();">
        <h:outputText value="Extended" />
    </p:commandLink>

对话框配置如下:

<p:dialog widgetVar="contactextended" modal="true" width="600px" height="500px" showEffect="fade" hideEffect="fade" resizable="false" draggable="false">

背豆是一个简单的豆子,具有属性和吸气剂/设置器,显然有效。我的实现中是否存在问题?任何想法如何解决这个问题?提前感谢!

我自己修复了这个问题。解决方案似乎是将process="@this"添加到命令链接中。我仍然不确定潜在的问题是什么,但至少它不再被触发了。

相关内容

  • 没有找到相关文章

最新更新