无法显示自定义对话框

时间:2016-02-26 08:05:34

标签: javascript xpages

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

1 个答案:

答案 0 :(得分:1)

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

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