【问题标题】:How to close dialog box which is opened by jQuery?如何关闭jQuery打开的对话框?
【发布时间】:2011-11-30 15:22:16
【问题描述】:

我有一个网页,我在其中打开一个显示另一个网页的对话框。当我单击此子网页上的提交按钮时,它会加载到浏览器窗口中。

这里是完整的概要:

在父页面上,我有一个加载孩子的 div。

<div id="divMyDialog" title="Child Dialog Title">
</div>

在一个 jQuery 文件中,我有以下内容:

$("#divMyDialog").dialog({
    autoOpen: false,
    bgiframe: true,
    width: 800,
    height: 400,
    modal: true,
    draggable: false,
    resizable: false
    });

function OpenDialog(FirstID, SecondID) {
    $("#divMyDialog").dialog("open").load("ChildPage.aspx?FirstID=" + FirstID+ "&SecondID=" + SecondID);
}

现在,一旦我单击 ChildPage.aspx 中的 asp:button(在数据库操作之后),我希望 ChildPage.aspx 显示警报然后关闭。相反,发生的是它正确显示警报,然后在浏览器中加载 ChildPage.aspx。

对于警报,我在那个 asp:button 的 OnClick 事件中有这个:

Page.ClientScript.RegisterStartupScript(this.GetType(), "showalert", "<script>CloseMyDialog();</script>");

要关闭 ChildPage.aspx 对话框,我有这个:

<script type="text/javascript">
    function CloseMyDialog() {
        parent.$.fn.colorbox.close();
        return false;
    }
</script>

如果您需要更多说明,请告诉我。我已经尝试了很多东西,但到目前为止没有一个能正常工作。

谢谢。

【问题讨论】:

    标签: jquery asp.net


    【解决方案1】:

    您正在加载内容,这并不意味着它是 iFrame,您正在将页面内容加载到#divMyDialog。所以你不必做parent.$.fn。此外,如果您想关闭对话框,您可以执行以下操作:

    $("#divMyDialog").dialog("close");
    

    并关闭所有对话框

    $(".ui-dialog-content").dialog("close");
    

    【讨论】:

      【解决方案2】:

      这会关闭一个 jQuery 对话框:

      $("#divMyDialog").dialog('close') 
      

      【讨论】:

      • 这会在浏览器窗口中加载 ChildPage.aspx。这个我已经试过了。
      【解决方案3】:

      您必须将子页面加载到 iframe 中。你可以使用fancybox:

      $(".my-link").fancybox({'type':'iframe'});
      

      http://moleskinformatico.blogspot.com/2011/11/llamar-funcion-de-ventana-padre-desde.html

      或者你可以这样做:

       $(".my-link").click(function(){
       e.preventDefault();
       $this = $(this);
       $('<iframe id="site" src="' + this.href + '" />').dialog({
          width: 800,
          height: 400,
          modal: true
      
       });//dialog
      });//click
      

      http://blogs.antartec.com/desarrolloweb/2010/05/usando-jquery-dialog-con-iframe/

      html:

      <a hre="childPage.html" class="my-link">show-dialog</a>
      

      【讨论】:

        【解决方案4】:

        您必须停止按钮的提交过程。这可以通过在 onclick() 按钮函数上返回 false 来完成。

        【讨论】:

        • 我已经返回 false。您是指服务器端按钮的事件吗?
        【解决方案5】:

        ScriptManager.RegisterClientScriptBlock(Me, Me.GetType(), "closedialog", "$(function(){$('#dialog').dialog('close');});", True)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-10
          • 1970-01-01
          • 1970-01-01
          • 2011-03-07
          • 1970-01-01
          • 2020-07-25
          • 1970-01-01
          • 2010-09-26
          相关资源
          最近更新 更多