我们有一个包含以下JAR版本的JSF项目:
我们的ajax无效。
<p:selectOneRadio id="enrolledInPlanFlag" value="#{phInfoBean.enrldPlanFlag}" label="Action" >
<f:selectItem itemLabel="Yes" itemValue="Yes" />
<f:selectItem itemLabel="No" itemValue="No" />
<p:ajax process="enrolledInPlanFlag" update="@form"/>
</p:selectOneRadio>
<p:dialog id="dialog" header="APTC Warning" widgetVar="dlg1" modal="true" height="200" width="500" resizable="false" rendered="#{phInfoBean.enrldPlanFlag eq 'Yes'}">
我正在尝试显示基于selectOneRadio的对话框。但是AJAX不起作用,我们有一种奇怪的情况,有时候它会起作用,有时却不行。
我们使用@ViewScoped注释了托管bean。
请帮忙。
答案 0 :(得分:0)
您永远不会在代码中显示对话框。您可以在oncomplete
p:ajax
个活动
<p:ajax process="enrolledInPlanFlag" update="@form" oncomplete="PF('dlg1') != null ? PF('dlg1').show() : ''" />
条件PF('dlg1') != null
是必需的,就像您选择&#34;否&#34;您的对话框不再在您的页面中呈现,因此PF(&#39; widgetVarOfDialog&#39;)无法访问。
我会通过以下方式改进此代码:
enrldPlanFlag
更改为布尔值而不是字符串(更清洁的IMO)为什么呢?将逻辑留在bean而不是.xhtml页面