我有按钮Stop和Release调用save方法,在save方法中显示confirmDialog。我可以使用“停止”按钮,在对话框中按“确定”,方法可以正常工作,但是当我再次进入“时钟释放”按钮时,按钮不会调用actionListener。类似于单击Release,确认然后尝试停止。
以下是两个命令按钮,它们位于modeControls中。
<p:commandButton title="Stop" value="Stop"
rendered="#{unitSetVehicleStatusBean.crudMode == 'READ' and unitSetVehicleStatusBean.stopped =='false'}"
actionListener="#{unitSetVehicleStatusBean.stop}"
update="modeControls :mainForm"
process="@this :mainForm"/>
<p:commandButton title="Release" value="Release"
rendered="#{unitSetVehicleStatusBean.crudMode == 'READ' and unitSetVehicleStatusBean.stopped =='true'}"
actionListener="#{unitSetVehicleStatusBean.release}"
update="modeControls :mainForm"
process="@this :mainForm"/>
这是confirmDialog。它调用的save方法是从stop()和release()方法中调用的,然后经过一些验证我使用
RequestContext context = RequestContext
.getCurrentInstance();
context.execute("PF('saveNDTDialog').show();");
break;
当用户在confirmDialog中选择OK时,它将通过switch语句部分重新加入此方法并完成保存。
这是confirmDialog。
<p:confirmDialog id="saveNDTDialog" appendTo="@(body)"
widgetVar="saveNDTDialog" closeOnEscape="true"
closable="true"
message="#{message.stoppedValidationNDTWarning}">
<p:commandButton value="OK"
update="mainForm :modeControls"
actionListener="#{unitSetVehicleStatusBean.save('WARNING_NDT')}"
oncomplete="saveNDTDlg.hide();"/>
<p:commandButton value="Cancel"
onclick="saveNDTDlg.hide();" />
</p:confirmDialog>
我认为这个问题与appendTo或可能的onComplete有关,但不太确定会出现什么问题。
欢迎任何建议......
答案 0 :(得分:0)
通过从主窗体中拉出对话框并在对话框中的commandButtons周围添加一个表单,对话框开始按预期工作。