不能让自定义对话框显示
问题描述:
我有以下代码应该弹出一个对话框,并让用户通过按下按钮选择两个选项之一。不幸的是,它没有显示。过去的评论是“Y”,但getComponent行不会触发对话框。我究竟做错了什么?不能让自定义对话框显示
<xp:button styleClass="btn btn-primary" value="Un-Cancel" id="button28">
<xp:this.rendered><![CDATA[#{javascript:GASODIDoc.getItemValueString("Status") == "Cancelled"}]]></xp:this.rendered>
<xp:eventHandler event="onclick" submit="true" refreshMode="norefresh" disableValidators="true">
<xp:this.action><![CDATA[#{javascript:
if (GASODIDoc.getItemValueString("Past Reviews") == "Y"){
getComponent('UnCancelDocument').show();
}
GASODIDoc.replaceItemValue("Status", sessionScope.status);
GASODIDoc.save();
context.redirectToPage("index.xsp")}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
这是对话框
<xe:dialog id="UnCancelDocument" styleClass="dialogForm">
<xp:panel>
<xp:panel styleClass="dialogRow">
<xp:label
value="Do you want to return this GASODI to Draft or Document Generation status?">
</xp:label>
</xp:panel>
</xp:panel>
<!-- Save Button -->
<xp:panel styleClass="dialogActions">
<xp:button value="Return to Draft" styleClass="btn btn-primary"
id="button51">
<xp:eventHandler event="onclick" submit="false"
immediate="true" save="false" disableValidators="true">
<xp:this.script><![CDATA[sessionScope.status = "Draft";
XSP.closeDialog('#{id:UnCancelDocument}')]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<!-- Cancel Button -->
<xp:button value="Return to Document Generation"
styleClass="btn btn-primary" id="button52">
<xp:eventHandler event="onclick" submit="false"
immediate="true" disableValidators="true">
<xp:this.script><![CDATA[sessionScope.status = "Document Generation";
XSP.closeDialog('#{id:UnCancelDocument}')]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:panel>
</xe:dialog>
答
的行为是按预期。代码实际上运行并“显示”你的对话框,然后继续执行其他代码,最终以重定向。换句话说,对话框不会阻止剩余的代码运行。
您需要将其余的逻辑移动到用户在对话框内单击的按钮,作为关闭对话框的一部分。
+0
更改UnCancel按钮以使用
+1
它的工作原理 - 谢谢Per – RoyRumaner
它重定向到index.xsp而不是显示对话框吗? –
是每次,它跳过调用显示对话框 – RoyRumaner
正如预期的那样,因为您不能启动对话框,然后处理其余的代码。你必须将你的代码移动到对话框中的一个按钮 –