如何在服务器端写关闭窗口的代码?同时能够更新父窗口?

问:
一个datagrid,有一列为更新,点击以后弹出小窗口(用window.open写的),在小窗口中更新完数据以后,希望点击一个“关闭”按钮,关闭小窗口,然后更新父窗口。怎么写,有人知道吗?
______________________________________________________________________________________________
答1:
window.close();
window.opener.location = window.opener.location;

window.close();
window.opener.location.reload();
______________________________________________________________________________________________
答2:
应该先更新父窗口再关闭弹出窗口吧??

window.opener.location.reload();
window.close();

______________________________________________________________________________________________
答3:
同意 HawaiiLeo(罗马数字) 的方法,是先更新再关闭
______________________________________________________________________________________________
答4:
同意罗马数字
______________________________________________________________________________________________
答5:
用window.opener.location.reload();会有一个对话框
在open的时候把页面名称和ID传过去
Response.Write("<script>javascript:opener.location='"+(string)Request.QueryString["strLinkOR"]+"&ID="+(string)Request.QueryString["ID"]+"';window.close();</script>"); 
______________________________________________________________________________________________
答6:
window.close()早就试过了,不行呀,根本就找不到命名空间!
______________________________________________________________________________________________
答7:
我真傻,应该写客户端脚本的,知道了,谢谢各位!
______________________________________________________________________________________________
答8:
现在的情况是这样的:我在子窗口的btnClose_ServerClick()中写了:
Response.Write("<script>window.opener.location.reload();</script>");
Response.Write("<script>window.close();</script>");
结果父窗口刷新的时候会弹出窗口“不重新发送信息,则无法刷新页面。请单击“重试”再次发送信息,或单击“取消”返回正查看的页。”如果单击“重试”,结果父窗口是刷新了,可是子窗口又被打开了:(
有谁能够帮我啊?

______________________________________________________________________________________________
答9:
那样做当然会被重新刷新了!可以Response.Redriect("本身.aspx");呀,而且可以在PageLoad中检查是不是来源页是本身,如果是本身就关闭子窗口,用window.close();
______________________________________________________________________________________________
答10:
这样啊
我有办法啊
在新的窗口中,当你更新好后,用
this.Response.Redirect(Request.UrlReferrer.ToString())
应该可以的
______________________________________________________________________________________________
答11:
okok999:
好像不可以,我把你这句加在page_load中了,结果父窗口上的按钮点了连子窗口都跳不出了。
littlehb:
如果用Response.Redirect就不能回到父窗口当前状态了,比如说datagrid的排序就没有了。s所以看来也是不行。

还有哪位大侠帮帮小妹我,谢谢了!
______________________________________________________________________________________________
答12:
现在的问题是:我如何让父窗口reload的时候不打开子窗口?注意:打开子窗口是通过点击父窗口的一个datagrid的item_command中写的     Response.Write("<script>window.open('rename_type.aspx?type_desc="+Server.UrlEncode(e.Item.Cells[0].Text)+"','RenameType','height=100, width=200,location=no,left=400,top=300,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')</script>");

______________________________________________________________________________________________
答13:
现在问题可以简化为:一个窗口中有一个datagrid,其中一列是按钮列,点击该列会弹出一个子窗口,将子窗口关闭,然后刷新父窗口,结果子窗口又被打开,现在就是希望这个子窗口不要在父窗口刷新的时候自动打开。(奇怪的是,父窗口load的时候并没有点击按钮列的事件发生呀,它为什么要弹出子窗口呢?)
______________________________________________________________________________________________
答14:
是不是因为运行过Response.Write("脚本")后;脚本就被插入到了客户端html里的缘故啊。
______________________________________________________________________________________________
答15:
使用window.close()关闭窗口时总弹出一个是否关闭的对话框,如果不想让他弹出对话框,而是直接关闭的话,应
opener=null;window.close()
______________________________________________________________________________________________
答16:
我想这样做:在父窗口load的时候,检查是否有名为RenameType的子窗口打开着,如果有,我就关闭这个窗口。
但是代码不知道怎么写,那位大侠指点一下?
______________________________________________________________________________________________
答17:
分数不够可以再加,大家倒是替我出出注意啊,我好着急啊!!!
______________________________________________________________________________________________
答18:
你的跳出的那个窗口不是有个更新Button吗?
把this.Response.RedirectRequest.UrlReferrer.ToString())
放在这个事件的最后啊,不行吗?
______________________________________________________________________________________________
答19:
DataGrid不是有个编辑列吗,用他不就可以更新了,用不着这么麻烦了
______________________________________________________________________________________________
答20:
okok999:你这样做的结果是在更新以后,子窗口回到最初弹出来的状态,而父窗口并没有更新。
______________________________________________________________________________________________
答21:
mark
______________________________________________________________________________________________
答22:
不用Response.Write
用Page.RegisterClientBlock来发送javascript到ClintSide

posted @ 2007-07-27 08:21  星空竹月  阅读(838)  评论(0编辑  收藏  举报