日期:2014-05-18  浏览次数:20406 次

关闭模态窗口为何不能刷新父窗口????在线等
各位大哥大姐这个问题困让我很久了,就是没有解决,现在只能实现非模态窗口的关闭刷新发放代替,或者用页面跳转不打开子窗口的方法,但这中方法都不理想,如果我打开非模态窗口更新万数据后,可以刷新父窗口,但如果用户操作错误,打开多个非模态窗口,这样肯定出错。总之我要实现弹出子窗口的同时不能操作其他窗口(模态窗口);更新完后立即刷新父窗口。具体代码如下:

整个系统是框架TOP ;LEFT;RIGHT;三部分,left中有一个TREEVIEW控件;点击后所有子功能模块显示在RIGHT里;现在是这样的,我在RIGHT里有一个GRIDVIEW控件用来显示数据;我在这个控件里添加了一个模板列;用来向模态窗口传递ID,在模态窗口接受ID,显示所有详细内容;在进行操作,带操作完后点击确认给出提示然后关闭自身刷新父窗口。现在就是不能刷新父窗口。另外如果能实现刷新父窗口功能的话,能不能判断如果没有修改数据就不刷新父窗口,如果修改了再刷新。先谢谢大家了,一定要帮我,小弟不才,希望能给具体代码。我的主要代码如下:

  1、GRIDVIEW模板列里的超级连接,用来向子窗口传递ID:
 <a class=link-01 href="javascript:"onclick="window.showModalDialog('StandardShff.aspx?bzffdhID=<%# Server.UrlEncode(Eval("bzffdh").ToString())%>','window','height=600,width=600,scrollbars=yes,location=yes,directories=no,left=200,top=200');">[审核发放]</a>

2、在模态窗口中操作完后的关闭提示的后台代码:

 ClientScript.RegisterStartupScript(this.GetType(), "", " <script >alert( '已通过审核,请等待批准! ');window.close(); window.opener.location = window.opener.location;</script >");

其实就这么简单,但是我就是不能刷新父窗口,我觉的肯定是没有获得模态窗口的返回值。请大家帮忙呀!


 

------解决方案--------------------
模式窗口没有 window.opener 属性,原理参见
http://dotnet.aspx.cc/article/49ml4ao8-5pb3-4kny-njzd-ljoioxv4m1x4/read.aspx
http://blog.csdn.net/net_lover/archive/2002/09/24/6910.aspx
------解决方案--------------------
try


在xx.aspx内
window.returnValue = "1";
window.close()


myPopWindow = window.showModalDialog("xx.aspx",.....);


父窗

if(myPopWindow .returnValue = 1){
window.location.href = myWindow.location.href; 
window.location.reload();
}
------解决方案--------------------
1、GRIDVIEW模板列里的超级连接,用来向子窗口传递ID:
JScript code

<script  type="text/javascript">
function openWin(id)
{
    var returnValue=window.showModalDialog("StandardShff.aspx?SzffdhID="+id,window,"height=600,width=600,scrollbars=yes,location=yes,directories=no,left=200,top=200");
    if (returnValue==1)
    {
        window.location.reload();
    }
}
</script>