现在的位置: 首页 > 综合 > 正文

net 下弹出模式对话框并刷新父页面

2013年03月20日 ⁄ 综合 ⁄ 共 1351字 ⁄ 字号 评论关闭

关键点
  不能用客户端控件来触发弹出框(如用<a onclik="show()">/</a>),因为这样子的话得不到刷新页面的机会。
执行的顺序将是:父页面的pageload -》子页面的pageload-》子页面关闭按钮的事件对应处理方法。
  不能直接弹出aspx页面,这样得到父页面,在关闭弹出框时,将会新出一个和弹出页面一样的不是弹出框的页面。

解决办法是弹出html页面,在html页面里用ifrmae嵌入aspx页面示例
<iframe id="ifm"  width="100%" height="100%"></iframe>。
这里就需要用js处理从父页面传来的参数了
方法是先在html里面取得参数,然后结合url给iframe的src赋值实例代码:
 <script type="text/javascript">
       function SeIfmtUrl()
       {
        var str=location.href.toString().toLowerCase();   //获得浏览器地址栏URL串
        var num=str.indexOf("?")
        str=str.substr(num);   //截取“?”后面的参数串
        var ifm=document.getElementById("ifm");
        ifm.src="ProductList.aspx"+str;
       }
    </script>

在加载完成之后即在body之前再执行方法
</body>
<script type="text/javascript">
 SeIfmtUrl();
</script>
。对于子页面关闭并处理业务的按钮,在处理完成之后
执行 Response.Write("<script>window.close()</script>");
示例:protected void Button3_Click1(object sender, EventArgs e)
        {
            //do what you want
            Response.Write("<script>window.close()</script>");
        }

下面给出父页面的关键示例:
弹出模式对话框
 <script type="text/javascript">
    function ShowModel(id)
    {
       window.showModalDialog('HTMLPage1.htm?id='+id,'','dialogWidth:35;dialogHeight:20');
     
    }
    </script>

父页面触发弹出框的button设置
<asp:Button ID="Button2"  runat="server" CommandName="D"  %>' Text="弹出" OnClientClick="ShowModel('100');"/>
button设置下面的示例是button在gridview中,注意那个commandname,是为了唤醒服务器处理click事件,不然父页面得不到执行,

或者是执行的顺序不是先子页面处理完毕再处理父页面。 

抱歉!评论已关闭.