无法显示自定义对话框

Cannot get custom dialog to show

本文关键字:对话框 自定义 显示      更新时间:2023-09-26

我有以下代码应该弹出一个对话框,让用户通过按下按钮选择两个选项之一。不幸的是,它没有显示。"过去的评论"为"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>

行为符合预期。代码实际运行并"显示"您的对话框,但随后继续执行其余代码,最终以重定向结束。换句话说,对话框不会阻止其余代码运行。

例如,您需要将逻辑的其余部分移动到用户在对话框中单击的按钮,作为关闭对话框的一部分。