日期:2014-05-17 浏览次数:20404 次
protected void btnQuery_Click(object sender, EventArgs e) { Response.write("<script language='javascript'>var result = window.showModalDialog('Test.aspx',window,'dialogHeight:100px;dialogWidth:200px;');if(result==1){ window.location.reload();}</script>"); }
------解决方案--------------------
这个问题可以通过使用为弹出子页面添加一个过渡frame页面来解决,比如说,弹出的页面是test.aspx,那么可建立一个testframe.aspx页面,其html代码为:
<frameset rows="0,100%" border="0" frameSpacing="0" frameBorder="0">
<frame src="about:blank">
<frame src="test.aspx">
</frameset>
那么相应的主页面打开js应该写成:window.showModalDialog('testframe.aspx',等等);
相应的test.aspx的关闭js代码写成:window.parent.close(),如果从父页面传值到子页面或子页面返回值到主页面也分别要使用window.parent.dialogArguments和window.parent.returnValue方法
返回刷新页面,可通过判断window.parent.returnValue是否为null,如果不为空,则可以js执行隐藏button的submit方法达到刷新页面的效果
话说回来,现在第三方模态对话框控件很多的,Jqury UI、Devexpress等等,不一定要使用这种方法