asp.net中无限制弹出模态窗口

特点:

1.       可以在模态窗口上再弹出模态窗口,不限制次数

2.       弹出窗口的支持拖放,及调整大小

3.       弹出窗口关闭后可以动态控制是否刷新父窗口

总共需要3个页面来做演示

1. 页面ModalDemo.aspx

前台代码:

<head runat="server">

    <title>无标题页</title>

    <base target="_self"  />

    <script type="text/javascript">

function OpenDialogWithReturn(url,width,height,formID,action)

{

     var retValue = window.showModalDialog( url ,null,"dialogWidth:" + width + "px;dialogHeight:" + height +  "px;help:no;unadorned:yes;resizable:yes;status:no;scrollbars:yes");

     if (retValue !=  null && retValue != undefined && retValue == "SubmitForm")

     {

      if(action !=  null  && action != undefined && action.Length > 0)

       {

         formID.Action=action;

      }

       formID.submit();

     }

}

    </script>

</head>

<body>

    <form id="form1"  runat="server">

    <div>

        <a href="#"  onclick="OpenDialogWithReturn('ModalPage1.aspx',520,410,form1,'ModalDemo.aspx');">通过页面脚本来弹出模态窗口</a><br />

        <br />

        <br /><asp:Button ID="btnDetail"  runat="server" 

                onclick="btnDetail_Click" Text="通过动态注册弹出窗口" />

&nbsp;<br />

        <div>

            <%=DateTime.Now %>

        </div>

    </div>

    </form>

</body>

后台代码:

protected  void btnDetail_Click(object sender,  EventArgs e)

        {

            this.ClientScript.RegisterStartupScript(this.GetType(), "", "OpenDialogWithReturn('ModalPage1.aspx',520,410,form1,'ModalDemo.aspx');", true);

        }

2.第二个页面ModalPage1.aspx

前台代码:

<head runat="server">

    <title>第一个模态窗口</title>

    <base target="_self"  />

    <script type="text/javascript">

function OpenDialogWithReturn(url,width,height,formID,action)

{

     var retValue = window.showModalDialog( url ,null,"dialogWidth:" + width + "px;dialogHeight:" + height +  "px;help:no;unadorned:yes;resizable:yes;status:no;scrollbars:yes");

     if (retValue !=  null && retValue != undefined && retValue == "SubmitForm")

     {

      if(action !=  null  && action != undefined && action.Length > 0)

       {

         formID.Action=action;

      }

       formID.submit();

     }

}

    </script>

</head>

<body onunload="window.returnValue='SubmitForm';">

    <form id="form1"  runat="server">

    <div>

        <a href="#"  onclick="OpenDialogWithReturn('ModalPage2.aspx',500,400,form1,'ModalPage1.aspx');">

            通过页面脚本来弹出模态窗口</a>

        <br />

        <br />

        <asp:Button ID="Button1"  runat="server" Text="通过动态注册脚本来弹出模态窗口" 

            OnClick="Button1_Click" />

        <br />

        <br />

        <br />

        <asp:Button ID="btnOK"  runat="server" OnClick="btnOK_Click" Text="确定" />

        <br />

        <div>

            <%=DateTime.Now %></div>

    </div>

    <asp:Button ID="Button2"  runat="server" Text="添加" />

    </form>

</body>

后台代码:

//弹出新的模态窗口

        protected  void Button1_Click(object sender,  EventArgs e)

        {

            this.ClientScript.RegisterStartupScript(this.GetType(), "", "OpenDialogWithReturn('ModalPage2.aspx',500,400,form1,'ModalPage1.aspx');", true);

        }

        //关闭当前窗口,并刷新父页面

        protected  void btnOK_Click(object sender,  EventArgs e)

        {

            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "window.returnValue='SubmitForm';window.close();", true);

        }

3. 第三个页面ModalPage2.aspx

前台代码:

<head runat="server">

    <title>第二个模态窗口</title>

    <base target="_self"  />

</head>

<body onunload="window.returnValue='SubmitForm';">

    <form id="form1"  runat="server">

    <div>

        <asp:Button ID="Button1"  runat="server" Text="ok" OnClick="Button1_Click" />

    </div>

    <div>

        <asp:Button ID="Button2"  runat="server" Text="添加" />

    </div>

    <br />

    <div>

        <%=DateTime.Now %></div>

    </form>

</body>

后台代码:

//关闭当前窗口,并刷新父窗口

        protected  void Button1_Click(object sender,  EventArgs e)

        {

            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "window.returnValue='SubmitForm';window.close();", true);

        }

asp.net弹出多个模态窗口的更多相关文章

  1. asp .NET弹出窗口 汇总(精华,麒麟创想)

    asp .NET弹出窗口 汇总(精华,麒麟创想) 注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javas ...

  2. Asp.net弹出层并且有遮罩层

    长久以来,asp.net弹出层并且有遮罩层问题都是一个难以解决的问题,鉴于此,我决定写个弹出层发布出来,供大家使用... 这里的doing层是遮罩层,divLogin层是登陆层 若有其他问题请留言或邮 ...

  3. asp.net 弹出式日历控件 选择日期 Calendar控件

    原文地址:asp.net 弹出式日历控件 选择日期 Calendar控件 作者:逸苡 html代码: <%@ Page Language="C#" CodeFile=&quo ...

  4. ASP.NET弹出提示点击确定之后再跳转页面的方法

    //ASP.NET弹出提示点击确定之后再跳转页面的方法 //弹出了提示并且通过location.href转到了DeskTop.aspx页面 Response.Write("<scrip ...

  5. 点击文字弹出一个DIV层窗口代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  6. [转]C# 安装时弹出设置服务登录窗口

    本文转自:http://blog.csdn.net/prince_jun/article/details/38435887 安装服务时系统不要弹出设置服务登录窗口:在程序中将serviceProces ...

  7. C# Winform在win10里弹出无焦点的窗口

    原文:C# Winform在win10里弹出无焦点的窗口 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangmy1988/article/det ...

  8. SetWinEventHook 事件钩子(有些windows事件并没有消息对应,譬如弹出菜单,切换窗口,获得焦点,滚动条滚动等)good

    相信消息钩子大家听的比较多,消息钩子能够在应用程序处理系统消息之前将其截获,提前处理并可以决定是否继续将消息往下传送,有些windows事件并没有消息对应,譬如弹出菜单,切换窗口,获得焦点,滚动条滚动 ...

  9. jquery3和layui冲突导,致使用layui.layer.full弹出全屏iframe窗口时高度152px问题

    项目中使用的jquery版本是jquery-3.2.1,在使用layui弹出全屏iframe窗口时,iframe窗口顶部总是出现一个152px高的滚动窗口无法实现真正全屏,代码如下: <!DOC ...

随机推荐

  1. Today See>

    http://wenku.baidu.com/view/b08f3575f46527d3240ce061.html http://wenku.baidu.com/view/a3419558be2348 ...

  2. 960 grid 使用

    去官网下载960 grid,解压后可以看到css下面有如下文件: 960.css是一个综合性文件.我们要引入960 ,reset和text 3 个文件. 一般情况下调用: <link rel=” ...

  3. A fatal error has been detected by the Java Runtime Environment:

    在Eclipse中运行项目 遇到如下错误: ## A fatal error has been detected by the Java Runtime Environment:## EXCEPTIO ...

  4. 在magento中定义static block

    在magento中如何调用static block?(系统面板内CMS---->static block) 解答:若想在站点页面的某个地方放点静态的内容,比如广告,或者是促销信息之类的,这样的东 ...

  5. Conscription

    Conscription Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  6. dev gridcontrol 单箱效果

    private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChan ...

  7. C# in Depth阅读笔记2:C#2特性

    1.方法组转换 c#2支持一个从方法组到兼容委托类型的隐式转换,即如: button.click+=new eventhandler(logevent)可以写成 button.click+=logev ...

  8. Java面试题之数据库三范式是什么

    为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...

  9. 动画原理——线性来回运动&&波动

    书籍名称:HTML5-Animation-with-JavaScript 书籍源码:https://github.com/lamberta/html5-animation 1.在正选函数中,随角度的增 ...

  10. jQuery源码笔记——回调对象

    回调对象是一个多用途的回调列表对象,提供了强大的的方式来管理回调函数列表. 最简单的缓存对象 function Callbacks(){ var list = [], self = { add: fu ...