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. 关于Program Size

    Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常 ...

  2. CreateFile函数详解(确实很详细)

    CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...

  3. ln 命令

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...

  4. 解决Easyui1.3.3 IE8兼容性问题

    事先声明:项目在Firefox和Chrome上完美运行,在MSIE9.MSIE10上基本没问题,但是放在MSIE8上面运行问题就出来了.登录系统后,系统页面跳动,导致系统无法使用:我使用的是Easyu ...

  5. XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法(转)

    原文:http://blog.csdn.net/wxs0124/article/details/48706685 找到腾讯的info.plist 删除箭头指向的一行 重新打包,上传. (注明,不一定是 ...

  6. 采用OSChina代码托管管理项目(一)

    .Git是什么 Git在Wikipedia上的定义:它是一个免费的.分布式的版本号控制工具,或是一个强调了速度快的源码管理工具. Git最初被Linus Torvalds开发出来用于管理Linux内核 ...

  7. MediaController

    前言 本章内容是android.widget.MediaController,版本为Android 2.3 r1,翻译来自"唐明",再次感谢"唐明" !期待你一 ...

  8. 给自己保存份CSS初始值样式

    @charset "utf-8";body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,text ...

  9. bootstrap注意事项(三)

    1.<code> 标签用于表示计算机源代码或者其他机器可以阅读的文本内容.软件代码的编写者已经习惯了编写源代码时文本表示的特殊样式.<code> 标签就是为他们设计的.包含在该 ...

  10. Nodejs随笔(一):Hello World!

    声明:本人用的是Ubuntu 14.04 LTS 系统. 一.Nodejs安装: <1>直接apt-get安装,最简单:sudo apt-get install nodejs <2& ...