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

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);

 

        }

 

2.      第三个页面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);

 

        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值