博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Javascript 打开模式窗口

Posted on 2008-06-25 13:50  LonelyStar  阅读(1565)  评论(0编辑  收藏  举报
1    <script language="javascript">
2       function openModalDialog(url, width, height)
3        {
4            window.showModalDialog(url, """dialogWidth="+width+"px;dialogHeight="+height+"px");
5            window.location.reload(true); 
6        }

7    </script>

打开以后关闭窗户,父页面会自动刷新

调用例子:
在GridView的模板列里面使用:
1<asp:TemplateField>
2                                <ItemTemplate>
3                                    <href="javascript:openModalDialog('Edit.aspx?Id=<%# Eval("Id") %>',840,500);">Detail</a> 
4                                </ItemTemplate>
5                            </asp:TemplateField>
在普通页面的调用例子:
<a href="javascript:openModalDialog('Edit.aspx?Id=1',840,500);">Detail</a>

在打开的页面中的<head></head>之中需要加上如下的代码
<base target="_self" /> <!--Prevent opening new window-->
 <!--Disable the cache-->
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
    <meta http-equiv="expires" content="Mon, 23 Jan 1978 20:52:30 GMT" />


参考文章:关于模态对话框关闭之后继续执行服务器端代码的问题

在打开的窗口中的服务器控件的事件中关闭打开的页面并且让父窗口跳转到另一个页面的代码
1protected void Button1_Click(object sender, EventArgs e)
2        {
3            string script = @"<script language='javascript'>window.close();window.dialogArguments.location.href='Default.aspx';</script>";
4
5            ClientScript.RegisterStartupScript(this.GetType(), "close", script);
6        }

在使用showModalDialog时需要将window当成参数传递给子视窗, 如此视窗才能使用window.dialogArguments.location

1<script language="javascript">
2        function ss()
3        {
4            window.showModalDialog("SubPage.aspx", window, "dialogWidth=440px;dialogHeight=300px");
5        }

6    </script>