日期:2014-05-19  浏览次数:20540 次

window.close()问题

用window.showModalDialog( 'Dlg.aspx ')打开对话框,然后在对话框中用window.close()关闭对话框后回到父窗口,为什么没有刷新父窗口,而点击对话框右上角的关闭按钮就有刷新呢??我想要的是在程序中来关闭并且可以刷新父窗口,是不是window.close()问题???有什么办法实现吗??谢谢

------解决方案--------------------
return window.showModalDialog( 'Dlg.aspx '); //return 绝对不要省!!!


在 'Dlg.aspx ':
window.returnValue=true;
window.close();

然后你的代码错了,SortAdd_Click里面应该留空(如果你只要刷新页面~~要是除了刷新页面还有其他事情要做,比如从新绑定某些控件,那就写这里,然后把你原来这些代码都删除了)


如果是2005 在SortAdd的OnClientClick属性里写 “return showModalDialog( 'Dlg.aspx ');”

如果是2003,在PageLoad里面 SortAdd.Attributes.Add( "onclick ", "return showModalDialog( 'Dlg.aspx '); ");
------解决方案--------------------
private void SortAdd_Click(object sender, System.EventArgs e)
{
Response.Write( " <script> window.showModalDialog ( 'sortAddDlg.aspx ', 'null ', 'dialogWidth=400px;dialogHeight=300px; '); </script> ");
Response.Write( "返回了 ");
}
然后用window.close()关闭sortAddDlg.aspx对话框后,Response.Write( "返回了 ");这一句就没有执行了!但点击对话框右上角的关闭按钮就有执行这一句了!该用什么解决啊?
____________________________________________________________________________________

首先程序执行顺序问题,是先后台再执行前台脚本,除非是碰上中断,alert,或showmodaldialog都能引发中断,因此当中断不存在时候,是可以继续执行的,我调试了下,你的这两行代码,不知道你的window.close写在哪?
我在Dla.aspx中用一个button onclick= "window.close() " 都可以成功把下一行 Response.Write( "返回了 ") 打印出来