在 <p:selectOneRadio> 发生变化时切换 <p:panel visibility>

Toggle <p:panel visibility> on change of <p:selectOneRadio>

我想在选择 <p:selectOneRadio> 项时显示 <p:panel>。它在第一次选择时有效,但在 ajax 调用后它停止工作。

<p:selectOneRadio id="console" value="#{myBean.membre}">
    <f:selectItem itemLabel="a" itemValue="false" />
    <f:selectItem itemLabel="b" itemValue="true" />
    <p:ajax update="panel2,panel1" />
</p:selectOneRadio>
<p:panel id="panel1" visible="#{myBean.membre == false}"
    closable="true" toggleable="true">
    <ui:include src="a.xhtml" />
</p:panel>
<p:panel id="panel2" visible="#{myBean.membre == true}"
    closable="true" toggleable="true">
    <ui:include src="b.xhtml" />
</p:panel>

在 PrimeFaces 4.0 上,我必须先从面板中删除可关闭的属性,然后才能切换可见性。我还添加了一个表单,在处理表单字段时总是需要它。

这是我的工作解决方案:

<h:form id="testForm">
  <p:selectOneRadio id="console" value="#{myBean.membre}">
    <f:selectItem itemLabel="a" itemValue="false" />
    <f:selectItem itemLabel="b" itemValue="true" />
    <p:ajax update="panel2,panel1" />
  </p:selectOneRadio>
  <p:panel id="panel1" visible="#{not myBean.membre}" toggleable="true">
       test 111
  </p:panel>
  <p:panel id="panel2" visible="#myBean.membre}" toggleable="true">
     test 222
  </p:panel>
</h:form>

为什么closable属性和visible属性冲突我不知道。这可能是一个错误或计划外的组合。