Javascript 无法获取要显示的自定义对话框

Javascript 无法获取要显示的自定义对话框,javascript,xpages,Javascript,Xpages,我有下面的代码,应该弹出一个对话框,让用户通过按下按钮从两个选项中选择一个。不幸的是,它没有显示。过去的评论是“Y”,但getComponent行不会触发对话框。我做错了什么 <xp:button styleClass="btn btn-primary" value="Un-Cancel" id="button28"> <xp:this.rendered><![CDATA[#{javascript:GASODIDoc.getItemValueString("Sta

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

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


例如,在关闭对话框时,需要将其余逻辑移到用户在对话框内单击的按钮。

它是否重定向到index.xsp而不是显示对话框?是,它跳转到调用的正上方以按预期显示对话框,因为您不能启动对话框,然后再处理其余的代码。您必须将代码移动到对话框中的一个按钮,您在谈论哪种代码?启动对话框的代码或在对话框返回后设置字段值的代码?设置字段值的代码(显示对话框后的代码)更改取消取消按钮以使用将弹出对话框并允许我设置状态。现在我只需要弄清楚只有当“过去回顾”=“Y”时如何弹出它,但如果“过去回顾”=“N”,则在不弹出对话框的情况下将状态设置为草稿