弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页

做的东西弹出一个窗口处理某些动作后刷新父窗口

window.opener.location.reload();
刷新
如果父窗口在此之前如果有过提交数据的动作,则会出现这么个讨厌的对话筐
“不重新发送信息,则无法刷新网页”
痛苦......
CSDN搜索未果(有几贴都是用Response.Redirect的方法,但我这里是刷父窗口)。
痛苦.
........
翻我的小本本 后找到办法

window.opener.location.href=window.opener.location.href
去刷新(其实是重定位了一下)父窗口
可行。
总结: 不能一棵树上掉死 :P

标签: .net, asp.net

posted on 2004-04-06 17:04 活靶子.Net 阅读(54990) 评论(128) 编辑 收藏

评论

#27楼 2004-09-21 20:52 cao[未注册用户]

一群飞舞  回复 引用   

#28楼 2004-09-21 22:05 wice(lbx@china.com)

我也碰到这个问题,我在做网页登陆时需要将首页(index.asp)用户登陆信息传递到注册识别程序(login.asp)判断然后刷新首页(index.asp).如果用window.opener.location.reload();就会弹出"出现不重新发送信息,则无法刷新网页 "的讨厌界面.但是如果用"window.opener.location.href=window.opener.location.href"则不能刷新原窗口.
一直找不到解决方法.最后,自己总结了另一个方法解决了.
我在首页的登陆界面中传递首页的url(用request.ServerVariables("URL")取得),通过表单的隐参数传递到login.asp,刷新首页则采用
response.Redirect(Url)即可.
非常的简单,也可靠.
 回复 引用   

#29楼 2004-09-26 00:38 kuo

子窗口提交表单后关闭,同时刷新父窗口的问题!
网上的几种方法,但都遇到了问题!很苦闷!望高手解救!

1.window.opener.location.reload();
会出现讨厌的对话框"不重新发送信息,则无法刷新网页"
2.window.opener.location.href=window.opener.location.href
不出现对话框,但会丢失信息,等于每刷新一样
3.response.Redirect()
好像是刷新子窗口的吧?至少我还不会用它来解决这个问题。行吗???
 回复 引用   

#30楼 2004-09-26 21:15 活靶子[未注册用户]

我不清楚您说的父页面信息丢失是什么情况,
我的场景是这样的
比如您在页面上绑定一些信息,
使用的是repeater或者用了DataGrid活着DataList却不想用它的编辑功能,而是在一个弹出的窗口内修改某些项目,
为了方便可能用了一个Button活着LinkButton来弹出窗口
弹出的时候Form实际上已经提交了这个时候,刷新窗口会出现那个
"无法刷新。。。"的信息,而你在弹出窗口修改了数据库内的某些字段后
需要页面上立即也显示出来,当然就是让父页面再次加载一下(重新绑定)了,就可以用我写到的那个方法实现刷新了
谢谢讨论!
 回复 引用   

#31楼 2004-09-27 11:48 月色疯狂

都是笨办法。
在Page指令中加上smartNavigation=true
再加上<%@ OutputCache Location="None" %>
以后怎么进去,它都会刷新。
 回复 引用   

#32楼 2004-09-27 13:59 事实

如果页面提交到一个侦里面,保存后刷新本页面该如何实现呢?  回复 引用   

#33楼 2004-10-13 15:48 万能解决方法[未注册用户]

很简单,为了防止探出刷新的东西,可以把向父窗口提交的那个FORM改成GET属性,而不使用POST属性就可以了!
superwgl@hotmail.com
 回复 引用   

#34楼 2004-10-18 14:11 OSCAR

我的问题是:
显示和发送在一个页面上,当发送一条评论成功后再点“刷新”,则出现提示,如果选再次“发送”则页面重新提交上次的信息,这样每次刷新都提交,每次都写数据库,刷一次加一条,晕啊
急请大侠指教!!!!!!!!
 回复 引用   

#35楼 2004-10-18 14:29 OSCAR

谢谢大侠“月色疯狂”  回复 引用   

#36楼 2004-11-04 10:12 tousen

   如果父窗口和子窗口不是在同一个文件夹下的话,要实现子窗口关闭,父窗口刷新怎么办???
 回复 引用   

#37楼 2004-11-04 16:15 huobazi

To:tousen
和路径无关的
 回复 引用   

#38楼 2004-11-24 11:23 bh

到底该怎么办?谁能告诉我?  回复 引用   

#39楼 2004-11-25 17:37 Henry

谁能把具体的代码弄上来啊。。。。我是用c#.net的。想在新窗口中添加数据,然后刷新父窗口中的datagrid数据啊。万分感谢!  回复 引用   

#40楼 2004-12-19 01:20 11[未注册用户]

gdsa  回复 引用   

#41楼 2004-12-19 01:21 zc0000[未注册用户]

sfffffdsaf  回复 引用   

#42楼 2004-12-20 10:44 buddy

good  回复 引用   

#43楼 2004-12-20 10:44 buddy

good  回复 引用   

#44楼 2005-01-07 20:10 yun

结果怎么解决啊?  回复 引用   

#45楼 2005-01-13 10:17 sunywin

将下面的代码写在脚本文件里,然后在服务器端调用就可以了
function bb()
{
var x = window.parent.dialogArguments;
x.Relocation();
window.close();
}
但如果,他的父页面是嵌套在另一个页面 A 中,怎么刷新页面A?
 回复 引用   

#46楼 2005-02-16 00:53 windy

试试把"post" 改成 "GET"  回复 引用   

#47楼 2005-02-16 14:03 jenny[未注册用户]

window.opener.location.href=window.opener.location.href ;window.opener.location.reload();管用的,多谢指教!  回复 引用   

#48楼 2005-02-20 00:40 tony

如果框架里的页是另一个服务器怎么办

负责刷新的页也必须和那个要被刷新的页在一个服务器否则就出现

没有权限的错误

但是我用这个方法还是不行window.opener.location.href=window.opener.location.href ;window.opener.location.reload();
 回复 引用   

#49楼 2005-02-26 19:09 andy

window.opener.location.href=window.opener.location.href;
setTimeout("window.close()",1000);
IE6.0 下通过
关闭当前窗口,刷新父窗口
 回复 引用   

#50楼 2005-03-30 16:11 henliqi

无法刷新啊。如果刷新的话就报“不重新发送信息,则无法刷新网页”。我想是存在VIEWSTATE里了。SESSION里也存了。  回复 引用   

#51楼 2005-04-04 12:13 路过

你opener的信息是post提交的,所以刷新的时候要提交多一次,如果是get提交的信息就没有问题,get提交的信息在url里面的,而post提交的信息是在请求体里面的

如果只是改href来刷新,opener就那不到post的信息了

解决办法就是用get或者在opener里面建一个form,action是opener自己,保存需要的信息,然后在子窗口里面用window.opener.document.formxxx.submit();代替window.opener.location.reload();
 回复 引用   

#52楼 2005-04-12 10:52 aaa

你们讨论的方法我全试了,还是出现那个讨厌的“不重新发送信息,则无法刷新网页...”,唉,没办法了。我是在iframe里嵌套的父窗体  回复 引用   

#53楼 2005-04-28 17:04 可乐[未注册用户]

简单的方法,我用过了,行的window.opener.location.reload(true);  回复 引用   

#54楼 2005-04-28 17:08 可乐[未注册用户]

补充一下,我是在showModelessDialog窗口反回到父窗口时用的,所以我试的是这个window.dialogArguments.location.reload(true);
我想你们的那个window.opener.location.reload(true); 也是可以用的
 回复 引用   

#55楼 2005-04-30 16:03 仁渣      

楼主,有个问题你考虑没有,如果你的页面有分页之类的状态,还第几页不是写在请求字符串中的,那么你用window.location = window.location会导致状态的丢失,就是说,如果原来是第五分页,给你这么一整又回到第一页了,可想用户的使用体验。。。。  回复 引用 查看   

#56楼 2005-05-03 21:32 路过各位继续

一、如果你是用javascript的window.open()方法打开的,可以试试:
window.opener.location.reload();

如果你是用超链接 <a href="mypage.aspx" target="_blank">在新窗口打开</a> 这样打开的,那么两个窗口之间没有任何关系,所以无法实现刷新打开新页面的窗口的要求。

二、使用Response.Write("<script language='javascript'>window.opener.location.href = window.opener.location.href;window.close();</script>");

三、首先如果你父页面中,提交过,有本页提交,即IsPostBack = ture .那么子窗体中用javascript 的window.opener.location.reload();方法就会出现IE讨厌的网页刷新重试按钮。

四、除非你父窗体中没有本页提交,都是通过href = ....._blank 出去的,在子页面中使用,reload()是没有问题。

五、 在Page指令中加上smartNavigation=true
再加上<%@ OutputCache Location="None" %>

 回复 引用   

#57楼 2005-05-11 21:16 xh

我在ie6.0下调试通过了,楼上的方法很好用,并且我的页面时在iframe里面的。程序如下:
//关闭本窗口并刷新父窗口
Response.Write("<script language='javascript'>window.opener.location.href = window.opener.location.href;window.opener.location.reload();self.close();</script>");
 回复 引用   

#58楼 2005-06-09 09:58 cx12cn

Page.RegisterStartupScript("addok","<script language=javascript> opener.location.href='父页面的名称';window.close();</script>");

父页面的名称 eg:parent.aspx

或许有问题

不过我是这么用的 没发现什么问题
 回复 引用   

#59楼 2005-06-14 17:59 ff

TO:你的代码我试过,解决我一个难题,谢谢!  回复 引用   

#60楼 2005-06-20 14:18 234

23423424234select  回复 引用   

#61楼 2005-06-27 10:18 dj

各位的方法我都试过,的确可以刷新,但是在父页面种田的信息就会被刷的不见了。有没有即可以刷新父页面,父页面的信息有不会被刷掉的方法  回复 引用   

#62楼 2005-06-29 17:45 路过

都是他吗的牛人  回复 引用   

#63楼 2005-07-14 10:59 阿波[未注册用户]

我的登录页面和显示页面是在同一个页面下,我试过上面的几种方法似乎都不行,请问哪位大位帮一忙啊,要死人了,我用的是DataGrid显示,登录后再按 "F5" ,问题就出来了

帮忙啊
 回复 引用   

#64楼 2005-07-14 16:37 wlei[未注册用户]

<!--
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====
++++++++++++++摘字自网上,〈关闭子窗口自动刷新父窗口〉 +++++++++++++++
++++++++++++++ 2005。6。22 +++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<script>
function op(){
newopen=window.open("post.php","0","0");//"post.php"-----子窗口网址,,"0","0"--------用来设置子窗口的滚动条及工具栏。
setInterval('wen()',10);
}
function wen(){
if(newopen.closed){
window.location.reload();
}
}
</script>
<span style="CURSOR: hand" onclick='op()'><IMG SRC="/img/post.gif" WIDTH="40" HEIGHT="20" BORDER=0 ALT="填写新的留言"></span>
-->
 回复 引用   

#65楼 2005-07-22 15:55 jqhuang[未注册用户]

首先,在页面中的FORM中使用method = "get",然后可以用上面说的window.opener.location.href = window.opener.location.href;
window.opener.location.reload();
刷新页面将不会出现弹出对话框。上面两句也可以只用后面的一句。
 回复 引用   

#66楼 2005-08-13 08:19 周奔驰      

# re: 弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页
都是笨办法。
在Page指令中加上smartNavigation=true
再加上<%@ OutputCache Location="None" %>
以后怎么进去,它都会刷新。
2004-09-27 11:48 | 月色疯狂
 回复 引用 查看   

#67楼 2005-08-19 18:28 DarwinYang[未注册用户]

window.opener.location.href=window.opener.location.href
就是弹窗的父页面重定向到自己
window.opener.location..reload()
是刷新一下
我用过绝对没有问题
不会出现
“不重新发送信息,则无法刷新网页”
数据也刷新了

可以工作,谢谢!
 回复 引用   

#68楼 2005-08-20 14:54 fgh[未注册用户]

用window.location=window.location也可以,但是如果父窗体是一个模态窗体,刷新后会弹出一个新的窗体,不知道该怎么办.<base target=_self>也已经设了.有人能解决这个问题吗?  回复 引用   

#69楼 2005-08-22 10:10 gj[未注册用户]

如果是分页显示的父窗口
用window.opener.location.href=window.opener.location.href ;
window.opener.location.reload();
仍然会出现
“不重新发送信息,则无法刷新网页”。
 回复 引用   

#70楼 2005-08-29 13:34 Gapple[未注册用户]

我在工作中的ASP.NET项目中也遇到了这个问题,需要在添加修改等操作以后关闭子窗口,同时刷新父窗口,非常的棘手,我浏览了以上各位的回复,但都失败了,呵呵,不是各位的代码和思路有问题,是我使用的是window.showModelessDialog()。

我是这样解决的:
首先在父上放一个刷新列表用的按扭控件,然后对它进行编程,调用onClick来运行Codebehind里的C#函数,当然,这些都是和你的程序有关的东西,大家自己研究,以我的程序为例,我在这个按扭上运行了一个公用类的一个函数,用来render当前页的DataGrid。我把这个按扭控件的ID设为refresh,其实什么都可以。

然后在子窗体上的添加或者修改按扭上的服务器端事件中注册一个js代码块来执行window.dialogArguments.document.forms[0].refresh.click();
之所以没有self.close()是因为父窗体提交以后,IE6会自动关闭子窗体,子窗体消失的速度非常快,可以说是自动的self.close()。

好了,以上代码都写好了以后,就可以在父窗体的DataGrid的SelectedIndexChanged事件中调用函数来注册js代码块。来执行window.showModelessDialog()。

由于本人目前专心开发ASP.NET程序,并且都是使用ModelessDialog来力争实现一种WinForm的外观和用户体验,所以对这个父子窗口的功能非用不可。呵呵,虽然这个方法不是什么太高明的方法,需要在父窗体上放一个刷新按扭,并且还要对这个按扭编程刷新ASPX页,但由于有ASP.NET特有的一些form特性,使得以上的实现效果还是非常好的。但不知道离开了ASP.NET环境,这个刷新按扭还应该做什么其它的考虑了,不做ASP.NET的话,我这个方法恐怕实现起来还是显得比较笨拙了。不过,在ASP.NET环境中调用的话,效果的确非常理想。
 回复 引用   

#71楼 2005-08-29 21:45 DD[未注册用户]

以上方法,我都试了,有的时候会弹啊,有的时候不会弹啊  回复 引用   

#72楼 2005-08-31 22:16 nfxk[未注册用户]

如果父页是一个查询的结果集,刷新后怎么保持这个结果?  回复 引用   

#73楼 2005-09-01 14:30 Gapple[未注册用户]

TO nfxk:我不明白,不可以吗?我的父页就是一个查询的结果集,刷新是自己编程解决的,当然,我是自己编了一个public类,然后一股脑把所有需要用到的公用函数都放在里面来用的。另外,刷新如果能实现,记录集可以用Render的思想来做。事实上,用Render的思想,在ASP和PHP中都是一样的,但ASP.NET中就不用犯愁了,因为本身的Cache机制可以很好的做到这一点。  回复 引用   

#74楼 2005-09-04 20:13 www.shiqingfu.com/ipmaster[未注册用户]


to Gapple :
看了你的帖子,我发现你跟我有同样的需求,

因为模式窗口在很多浏览器中并不支持,上次我就用moliza测试过。

而且session还会丢失。不知道你有什么好办法解决?
 回复 引用   

#75楼 2005-09-08 14:13 metas[未注册用户]

<frameSet>
<frame name='frm1'>
<frame name='frm2'>
</frameSet>

frm2自己有过提交后,
再从frm1触发frm2提交 会提示“出现不重新发送信息,则无法刷新网页”

这个问题还存在
有没解决办法?
 回复 引用   

#76楼 2005-09-15 10:37 FsYd      

刚才碰到这个问题,找到了这个页面.
我碰到的问题的麻烦在于要刷新的父窗口是提交了数据的,虽然url没有发生变化,但是浏览器内已经有很多自定义控件的状态.所以使用location.hfef刷新会丢失原来页面的state,而使用reload()更新则会弹出恼人的提示窗口.
ok
受Gapple兄的启发,我得想法是主动提交父窗口的form,javascript代码如下:
window.opener.window.document.forms(0).submit();
这样服务器端会主动提交一次form.如果之前没有考虑form主动提交的情况,再返回的页面信息可能也会有些丢失.不过既然球已经被主动踢倒后台,我们在后台稍做改动就能得到更新数据后的父页面.

多亏了form,不过如果没有form的话又何来提交数据的动作而带来的提示窗口呢呢.我晕了

Best Regards.
欢迎探讨.
 回复 引用 查看   

#77楼 2005-09-15 10:51 FsYd      

楼上路过已经说出这个方法了,赞  回复 引用 查看   

#78楼 2005-09-21 16:26 123[未注册用户]

TO: cx12cn,还是你的方法最好  回复 引用   

#79楼 2005-09-25 23:52 leo[未注册用户]

谢谢,你是最棒的~  回复 引用   

#80楼 2005-09-27 12:03 宝剑·123钢铁·123steel.cn      

供大家一用:(项目中的:放在js中)
function ShowModal(url)
{
var ret = window.showModalDialog(url, null,"dialogHeight:580px;dialogWidth=600px;scroll:yes");
if((ret!=null)&&(ret != "undefined"))
{ window.location=window.location.href;
}
}
 回复 引用 查看   

#81楼 2005-09-27 17:17 柱子[未注册用户]

function ShowModal(url)
{
var ret = window.showModalDialog(url, null,"dialogHeight:580px;dialogWidth=600px;scroll:yes");
if((ret!=null)&&(ret != "undefined"))
{ window.location=window.location.href;
}
}
这样用HTML的按钮打开窗口,返回是可以刷新的
用WEB窗体的按钮打开窗口,返回不能刷新窗口
怎么解决?
 回复 引用   

#82楼 2005-09-29 13:49 黄玮璘[未注册用户]

很简单的解决方法
在.NET里头
默认有POSTBACK的控件存在
当页面回传的时候
后台会根据postback的内容进行操作
这样
我们可以从IE浏览器中调看这个回传代码
是一个叫__dopostback(..,..)的方法
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.Form1;
}
else {
theform = document.forms["Form1"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>的脚本
所以从父窗体打开新窗体的时候
新窗体都会返回一个值
叫做window.returnValue
利用这样的特性
我是这么解决的:
1)修改窗体更改与刷新的注意点:
1.父窗体一定要
有三处修改:
第一:页面加载时候的脚本写入
PCMS.cla.page.sc.page_postback_register(this.Page);
第二:postback的判断

else
{
//PCMS.cla.page.sc.page_c_win_openPageclose_returnvalue("pleasefresh");
if(Request.Form["__eventargument"]!=null)
{
if(Request.Form["__eventargument"].ToString()=="pleasefresh")
{
this.databind(true);
}
}
}
第三:打开页面的调用(调整窗体大小)
PCMS.cla.page.sc.page_f_win_opendialog_returnvalue(this.Page,"l02_dialog_Check_Car_M.aspx?intemp="+e.Item.Cells[0].Text,800,750);
2.子窗体一定在关闭的时候:
PCMS.cla.page.sc.page_c_win_openPageclose_returnvalue(this.Page,"pleasefresh");
3.在类库中进行的代码书写:
/// <summary>
/// 页面执行页面刷新的返回服务器端传送信号的JAVASCRIPT函数
/// </summary>
/// <param name="page">镶嵌javascript代码的页面名</param>
/// <returns></returns>
public static void page_postback_register(System.Web.UI.Page page)
{
string javascriptpostback="<script language=\"javascript\" type=\"text/javascript\">"+
"function ___doPostBack(eventTarget, eventArgument) "+
"{"+
"var theform;"+
"if (window.navigator.appName.toLowerCase().indexOf(\"microsoft\") > -1) "+
"{"+
"theform = document.Form1;"+
"}"+
"else "+
"{"+
"theform = document.forms[\"Form1\"];"+
"}"+
"theform.__EVENTTARGET.value = eventTarget.split(\"$\").join(\":\");"+
"theform.__EVENTARGUMENT.value = eventArgument;"+
"theform.submit();"+
"}"+
"</script>";
page.RegisterClientScriptBlock("PostbackServer",javascriptpostback);
}
/// <summary>
/// 和___PostBack一起同时使用,用在一个页面上
/// 父亲窗体通过Request.From["__eventargument"].ToString()获取子窗体关闭时候提供的ReturnValue值
/// </summary>
/// <param name="page">要执行的页面对象</param>
/// <param name="URL">要打开的页面地址</param>
/// <param name="width">宽</param>
/// <param name="height">高</param>
public static void page_f_win_opendialog_returnvalue(System.Web.UI.Page page,string URL,int width,int height)
{
//Response.Write(System.Web.HttpUtility.HtmlEncode("你 %^&*% 好"));
string js2="<script language=\"JavaScript\">";
js2+=string.Format("res=window.showModalDialog(\"{0}\",window,\"status:false;dialogWidth:{1}px;dialogHeight:{2}px\");___doPostBack('Form1',res);",URL,width.ToString(),height.ToString());
js2+="</script>";
page.RegisterClientScriptBlock("can",js2);
}
/// <summary>
/// 窗体关闭返回给父窗体事件,父亲窗体通过Request.From["__eventargument"].ToString()获取ReturnValue值
/// </summary>
/// <param name="page">子窗体页面对象</param>
/// <param name="ReturnValue">返回给父窗体的值</param>
public static void page_c_win_openPageclose_returnvalue(System.Web.UI.Page page,string ReturnValue)
{
page.RegisterStartupScript("return",string.Format("<script>window.returnValue=\""+ReturnValue+"\";window.close();</script>"));
}
这样就很容易解决了

 回复 引用   

#83楼 2005-09-29 13:54 黄玮璘[未注册用户]

上面有地方省略了些代码
这些代码页面加载时的判断:
if(this.Page.IsPostBack==false)
{
//第一次加载页面的时候在这里运行代码
}
else
{
//不是第一次登录页面时候在这里运行代码
//通过判断postback的参数进行代码调整
if(Request.Form["__eventargument"]!=null)
{
if(Request.Form["__eventargument"].ToString()=="pleasefresh")
{
//重新调整数据的函数调用,自己定义
this.databind(true);
}
}
 回复 引用   

#84楼 2005-09-29 14:00 黄玮璘[未注册用户]

我这里有一个涉及真正要刷新的问题
同一个页面下面
我有一个image控件
当我按下一个按钮的时候
我要随机指定一张jpg图片然后压缩成gif文件
这个gif文件叫b.gif
我要这个image控件在每次按钮事件结束后绑定一个叫b.gif的图片
显示即时的图片
但是IE的缓存使得任何的加载方式都不能显示更新后的b.gif
除非IE浏览器关闭否则无法看到更新后的b.gif文件
请问诸位有没有高招帮我这个忙?

 回复 引用   

#85楼 2005-10-21 10:04 cry[未注册用户]

如果我点击不是弹出另一个窗口,而是在原来的页面改变,那么我执行完子页面,返回父页面,,如何刷新?  回复 引用   

#86楼 2005-10-21 10:04 cry[未注册用户]

如果我点击不是弹出另一个窗口,而是在原来的页面改变,那么我执行完子页面,返回父页面,,如何刷新?  回复 引用   

#87楼 2005-10-21 11:35 cry[未注册用户]

自己找到了,,大家分享一下..
在1.asp中
<a href="2.asp">链接</a>这种方式从1.asp到2.asp.
执行完2.asp后返回并刷新1.asp
而且参数不会丢哦!!
代码:
1.asp
<script language="javascript">
function RefreshCSS(){
if(window.name=="incart.asp"){
window.name="";
location.reload();
}
}
onLoad=RefreshCSS();
</script>


2.asp
<script language="javascript">
function BackToA(){
window.name="incart.asp";
history.go(-1);
}
BackToA();
</script>
这个问题让我好头痛啊,,现在终于可以解决了..
因为window.opener.location..reload() 只适用于,父页要用widow.open来打开子页
而上面的代码适用所有链接哦!!~~
可以的话顶一下.
 回复 引用   

#88楼 2005-10-21 11:38 cry[未注册用户]

忘了改了,,以上代码中的incart.asp改为2.asp,,呵!!当然你们用的页面是什么名称,,就要改为什么名称了...  回复 引用   

#89楼 2005-11-05 17:41 吴以桥[未注册用户]

就用这个得
window.dialogArguments.location.reload(true);哈哈!!!!!
 回复 引用   

#90楼 2005-12-14 16:19 高手[未注册用户]

window.opener.parent.document.form[0].action=window.opener.location.href;
window.opener.parent.document.forms[0].submit();
window.close();可解决
 回复 引用   

#91楼 2005-12-14 16:50 qxy[未注册用户]

其中window.opener.parent.document.form[0]是查询的表单
如果是get方法提交:
window.location.href=window.location.href ;
window.location.reload;
此为最终解决方案
 回复 引用   

#92楼 2005-12-27 11:54 hnleijin[未注册用户]

如果我弹出窗口填写的是搜索内容,完了这后点OK
把它的结果集返回到父页面.这要怎么做,怎么传,接值.
 回复 引用   

#93楼 2006-01-20 11:14 naive[未注册用户]

FsYd的方法可以实现页面数据的保存,赞,佩服,thx  回复 引用   

#94楼 2006-01-24 09:59 9402@9402.9402[未注册用户]

9402@9402.94029402@9402.94029402@9402.94029402@9402.94029402@9402.94029402@9402.94029402@9402.94029402@9402.94029402@9402.9402  回复 引用   

#95楼 2006-03-30 12:47 5888[未注册用户]

window.opener.location.href=window.opener.location.href ;
window.opener.location.reload();
如果数据量比较少的话,把form的action改成get就不会提示"不重新发送信息,则无法刷新网页"
 回复 引用   

#96楼 2006-07-14 11:31 tb[未注册用户]

上述的方法都不错,但是我试过了所有方法,没有能刷新的,特别是 Gapple 的方法,很不错,但是没有实现,有用这种方法实现的没有。如果有能帮个忙给我联系一下吗?QQ:278512262,欢迎讨论!!  回复 引用   

#97楼 2006-07-18 16:56 聂锋[未注册用户]

还可以啊,没什么错
我的页面也带参数了啊,打开新页面,提交完的时候,照样可以
Response.Write("<script>alert('修改成功');window.opener.location.href=window.opener.location.href;window.close();</script>");
 回复 引用   

#98楼 2006-07-31 17:05 江洋[未注册用户]

@聂锋
页面是可以刷新,但是父页面的控件如DataGrid的状态信息就没有了。。。

还是没能解决这个问题,请问哪位给出个简单的实例来详细说明这个解决办法~
 回复 引用   

#99楼 2006-08-01 13:03 wangjian[未注册用户]

@ya
 回复 引用   

#100楼 2006-08-01 13:06 wangjian[未注册用户]

@ya
@活靶子
 回复 引用   

#101楼 2006-08-01 13:15 wangjian[未注册用户]

@ya
@活靶子
 回复 引用   

#102楼 2006-08-09 21:22 mavislin[未注册用户]

我遇到的问题是,父页面a.jsp是一个查询数据库的结果,其中有链接是改变数据库中某个值得状态,该链接指向b.jsp,b页面执行完数据库操作后弹出对话框,我希望在弹出对话框后回到a页面,并且使a页面刷新,这个该怎么实现呢?
上面的办法我都试过了,不行。好像跟我这个还都不一样。
 回复 引用   

#103楼 2006-08-11 15:06 郁闷中死去[未注册用户]

@tb
为什么我照那么写了,还是不好使呢?
 回复 引用   

#104楼 2006-08-26 16:15 Dormin[未注册用户]

这些方法我也都用过,在某些条件下是不好用的,比如在struts中用Action1 Forward 到另一个Action2,再由Action2 Forward 到页面时,这些方法都是不管用的。  回复 引用   

#105楼 2006-08-29 18:08 lancy[未注册用户]

frame 里欠iframe,然后在iframe里打开别一页,如何刷新frame页呀!  回复 引用   

#106楼 2006-09-03 23:57 GGSTUDY[未注册用户]

我也碰到过这样的问题。模态对话框关闭后更新父窗口中的DATAGRID
可以解决了。我使用的模态对话框。返回后:
window.ocation.href=window.location.href ;
window.location.reload();

同时还要有<%@ OutputCache Location="None"%>
 回复 引用   

#107楼 2006-09-03 23:57 GGSTUDY[未注册用户]

我也碰到过这样的问题。模态对话框关闭后更新父窗口中的DATAGRID
可以解决了。我使用的模态对话框。返回后:
window.ocation.href=window.location.href ;
window.location.reload();

同时还要有<%@ OutputCache Location="None"%>
 回复 引用   

#108楼 2006-09-06 17:03 www[匿名][未注册用户]

@Gapple
Very 不错!
 回复 引用   

#109楼 2006-09-14 16:30 xiaoyuer[匿名][未注册用户]

我按照楼上的做法
window.opener.location.href=window.opener.location.href ;
window.opener.location.reload();
在javascript中写了,提示window.opener.location为空或不是对象
 回复 引用   

#110楼 2006-09-14 16:44 xiaoyuer[匿名][未注册用户]

在Page指令中加上smartNavigation=true
再加上<%@ OutputCache Location="None" %>

smartNavigation=true 加在page指令中?怎么加?
仅仅写<%@ OutputCache Location="None" %>放在asp文件开始,提示错误:指定的'OutputCache Location="None" VaryByParam="None" ' 选项未知或无效。
 回复 引用   

#111楼 2006-11-16 15:33 free[匿名][未注册用户]

window.opener.location ='SendTableUpd.aspx?tableId={0}';
window.close();


用这个可以搞定。
 回复 引用   

#112楼 2006-11-16 15:34 free[匿名][未注册用户]

string scrptStr = @"
<script>
window.opener.location ='SendTableUpd.aspx?tableId={0}';
window.close();
</script>";
Response.Write(string.Format(scrptStr, hidTableId.Value));


即重新指向该页面
 回复 引用   

#113楼 2006-11-23 16:15 无名[匿名][未注册用户]

window.opener.location.href=window.opener.location.href ;
window.opener.location.reload();
只要第一条就够了
window.opener.location.href=window.opener.location.href ;

后面的window.opener.location.reload(); 是多余的.用了反而会出错.
因为两条几乎是同步执行.
 回复 引用   

#114楼 2006-12-01 13:35 孤云.net[未注册用户]

Response.Write("<script>window.opener.location.href='main2.aspx';</script>");  回复 引用   

#115楼 2006-12-01 13:38 孤云.net[未注册用户]

这里 这里 这里 这里 这里 这里 这里 这里 这里 这里 这里 这里 这里
Response.Write("<script>window.opener.location.href='父页面';</script>");
这里 这里 这里 这里 这里 这里 这里 这里 这里 这里 这里 这里 这里
 回复 引用   

#116楼 2006-12-20 10:44 gderic_hu[未注册用户]

是POST表单时造成的
改成这样
<script language=javascript>
window.opener.location.replace(opener.location);
window.close();
</script>
 回复 引用   

#117楼 2007-01-04 17:06 第二天学ASP[未注册用户]

看你们写了半天,没有一个人把所有代码写全的。父页面的代码放在哪里?子页面的代码放在哪里?子页面是提交表单,那么怎么触发关闭窗口以及刷新父页面的代码呢?  回复 引用   

#118楼 2007-01-15 16:45 dengli[未注册用户]

window.opener.location.href='tCheckStock.jsp';//后面还可以接参数,刷新的父窗口地址

window.setTimeout('window.close();',300);//关闭弹出窗口
 回复 引用   

#119楼 2007-05-10 22:00 多[未注册用户]

history.go(-1);history.go(0);  回复 引用   

#120楼 2007-07-04 16:59 ss[未注册用户]

a  回复 引用   

#121楼 2007-12-20 16:02 小慈[未注册用户]

window.opener.window.document.forms(0).submit(); 方法 可行。父窗体是分页的也可以的.

没有分页不提交数据的话 用
window.opener.location.href=window.opener.location.href ;

能成
 回复 引用   

#122楼 2008-09-26 17:47 骆明亮      

@tmd
写错了的,实际是parent.location.reload()
 回复 引用 查看   

#123楼 2008-10-29 05:27 IMUK[未注册用户]

我更痛苦.  回复 引用   

#124楼 2008-10-31 16:28 ysq[未注册用户]

这个问题讨论的还真的很热闹啊,各位继续,  回复 引用   

#125楼 2009-04-26 16:40 gg[未注册用户]

缓存问题
楼主可能是设置清空缓存了
 回复 引用   

#126楼 2011-05-26 11:19 桥段      

结果还是没解决方案 都试了 效果不大  回复 引用 查看   

评论共2页: 上一页 1 2 

导航

公告

昵称:活靶子.Net
园龄:8年1个月
粉丝:30
关注:2

统计

搜索

 
 

我的标签

随笔分类(190)

随笔档案(152)

相册

常去链接

我的东西

友情博客

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜