不能让自定义对话框显示

问题描述:

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

它重定向到index.xsp而不是显示对话框吗? –

+0

是每次,它跳过调用显示对话框 – RoyRumaner

+0

正如预期的那样,因为您不能启动对话框,然后处理其余的代码。你必须将你的代码移动到对话框中的一个按钮 –

的行为是按预期。代码实际上运行并“显示”你的对话框,然后继续执行其他代码,最终以重定向。换句话说,对话框不会阻止剩余的代码运行。

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

+0

更改UnCancel按钮以使用 XP:this.action>弹出的对话框,让我设置状态。现在我只需要弄清楚如何在“Past Review”=“Y”时弹出它,但如果“Past Review”=“N”,将状态设置为Draft而不弹出对话框 – RoyRumaner

+1

它的工作原理 - 谢谢Per – RoyRumaner