我看到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"
添加到命令链接中。我仍然不确定潜在的问题是什么,但至少它不再被触发了。