我不确定这种行为是否正常
我希望只有在点击触发panel
请求的按钮后才能呈现我的ajax
。
不使用Ajax工作正常:
p:panel id="myPanel" rendered="#{myBean.flag}"
p:commandButton ajax="false" action="#{myBean.setFlagToTrue}"
(flag = false)
使用ajax失败:
p:panel id="myPanel" rendered="#{myBean.flag}"
p:commandButton ajax="true" action="#{myBean.setFlagToTrue}" update="myPanel"
(flag = false)
我尝试省略了渲染属性,实际上ajax工作得很好 我可以通过查看面板内反映的变化来判断。
答案 0 :(得分:33)
将带有条件渲染的面板放在另一个面板中并更新它。像这样:
<p:outputPanel id="toUpdate">
<p:panel id="myPanel" rendered="#{myBean.flag}">
</p:panel>
<p:outputPanel>
<p:commandButton update="toUpdate"/>
这是一个已知问题。如果DOM中不存在该元素,则无法更新该元素。