我想在点击primefaces命令按钮时显示一个对话框。在对话框之前,我需要检查一个条件。
我正在使用Spring web-flow 2.3.0。
所以我这样做,
对话框是
我无法根据此条件显示此对话框。
请帮助我,任何指示?
SWF 2.3.0 Primefaces 2.2.1 JSF 2 Spring Security 3 Spring 3.1.0M1I EhCache Apache Tomcat 6.0 STS 2.5.1
所以我按照下面的方式更改了我的代码
<p:commandLink id="addRequest" immediate="true" value="addreq"
oncomplete="dlg3.show()" update="dialogPanel">
<f:setPropertyActionListener
value="#{searchHandler.selectedAccIns}"
target="#{reqSearchHandler.checkAccStatus}" />
</p:commandLink>
对话框是
<p:outputPanel id="dialogPanel"
rendered="#{not reqSearchHandler.accStatusFlag}">
<p:dialog header="Effect Dialog" widgetVar="dlg3"
showEffect="bounce" hideEffect="explode" height="200">
<h:outputText
value="Account is #{searchHandler.selectedAccIns.accStatusDesc}" />
<h:outputText value="Do you want to continue?" />
<div align="left">
<p:commandButton value="Yes" action="accept" />
<p:spacer width="960" height="5" />
<p:commandButton value="No" action="cancel" />
</div>
</p:dialog>
</p:outputPanel>
但是当我点击命令链接时,我得到3个对话框。你能告诉我为什么会这样吗?
答案 0 :(得分:1)
其他人刚刚发布了同样的问题! :)
您应该使用oncomplete
属性而不是commandButton的onclick
。点击javascript事件发生在页面回发之前,可能会因为页面重新加载而导致对话框无法显示。
oncomplete="dlg3.show()"
将在回发后显示对话框。