首页 新闻 会员 周边 捐助

如何让刷新页面时不提示 "重试或取消”对话框

0
悬赏园豆:100 [已关闭问题] 关闭于 2011-01-28 11:37

这个对话框我自己看着都 不爽 ,何况用户了?只要点个按钮 在刷新 就会出现这个问题

自己熬了 3天没解决 求助大家了

http://danwind.javaeye.com/blog/431416

http://www.javaeye.com/wiki/topic/431416

http://www.cnblogs.com/strinkbug/archive/2006/12/04/581595.html

这是别人的解决办法,但是代码不全。我根本不知道他们的代码是怎么工作的

 在线等待

问题补充: 除了ajax以为 几乎所有的传值方式都弄了 发现.net 会灭亡的 一门毫无灵活性和扩展性的东西 迟早要亡的
隋凯的主页 隋凯 | 初学一级 | 园豆:65
提问于:2011-01-16 10:50
< >
分享
所有回答(8)
0

  一, window.opener.location.reload() 如果改页面没提交过,这个

方法好使.但是这个页面一旦提交过后,系统就会提示“重试或取消”的对话框.

     二 window.opener.location = window.opener.location;这个方法肯定不提示,但是有个问题就是分页显示的时候,一刷新总是会显示第一页,这个也是理所当然,因为默认请求的就是第一页

     三 window.opener.form1.submit();这个方法也不提示了,这个方法就是自动提交页面,绕开那个烦人提示的界面,但是如果被刷新的 页面用到了比如gridwiew控件之类的,里面的数据可能不会随着刷新而发生变化,原因就是gridwiew的数据绑定是在某个控件的事件中进行,而页 面是通过submit()提交的,不会触发该控件的事件.gridwiew中的数据也是通过读取viewstat中内容获得的,所以在刷新过程中数据不会 发生变化.

     四 window.opener.__doPostBack(“ Control“,““);其中 Control 是控件ID,这个方法就是克服了三的缺点,不用.opener.form1.submit()这样直接提交.不仅让页面自动提交,而且还要想办法让控件的 事件也执行.

     注意第四种方法也不是完美的,有的页面是没有这样的控件,有的页面有这个控件但也不能触发数据绑定事件.比如页面数据是随下框内容发生变化的那种页面.因 为页面数据是否重新绑定取决于下拉框中内容是否发生变化.而打开子窗体前后时下拉框内容肯定没有变化,所以页面内容也不会变化.

     五,针对四,我们可以在父页面用点小技巧,比如在Page_Load中绑定数据时不加IsPostBack判断,但是不好就不好在点按钮时同样的数据会绑定两遍.http://www.chinadrtv.com/shouji/sjppfl/moto/5117.shtml
ivyy2011 | 园豆:275 (菜鸟二级) | 2011-01-16 16:13
请你不要复制粘贴 这篇文章根本没说清楚 window.opener.__doPostBack(“ Control“,““); 是放在 控件的事件里 c#代码里
支持(0) 反对(0) 隋凯 | 园豆:65 (初学一级) | 2011-01-16 16:26
0

这个你管不到吧?这应该是浏览器的功能,你能管到浏览器?你能管到的是你的应用程序不让他重复提交。

顾晓北 | 园豆:10898 (专家六级) | 2011-01-17 09:53
博客园 回复完在刷新就不会出现这问题。而且很多网站都没这类问题 ,我想这是可以解决的。
支持(0) 反对(0) 隋凯 | 园豆:65 (初学一级) | 2011-01-17 12:39
晕,可以解决,你看看博客园,这个提交按钮只是一个input,根本不是你的asp.net里面的button,提交是jquery提交的,想做你也可以做。。。
支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2011-01-17 12:47
0

出现这个提示是因为之前的form已经被提交过(如服务器端Button控件Click),可以考虑这几种方法:

1、Button Click方法后Response.Redirect到本页,等于重新跳转到本页,这个需要考虑到实际的适用情况。

2、异步提交,ajax、jQuery都可以实现异步提交。

还是要结合实际的情况,综合评估风险与工作量。

manji | 园豆:633 (小虾三级) | 2011-01-17 15:55
Response.Redirect 这个方法会造成数据丢失 ajax、jQuery实现起来工作量还是有的
支持(0) 反对(0) 隋凯 | 园豆:65 (初学一级) | 2011-01-18 16:08
0

在post数据到服务端处理完后,注册脚本window.location.replace(要跳转的链接或当前页面链接)

刷新就不会再出现了.

I,Robot | 园豆:9783 (大侠五级) | 2011-01-17 20:45
window.location.replace 刚刚试过 同样会造成数据丢失 比如 分页的数据
支持(0) 反对(0) 隋凯 | 园豆:65 (初学一级) | 2011-01-18 16:12
0

异步提交啊

麦香老农 | 园豆:158 (初学一级) | 2011-01-18 11:35
0

      if (操作成功)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('产品修改成功!');location='"+Request.RawUrl+"';</script>");
        }

加上红色这句,你再刷新试试!

Cat Qi | 园豆:761 (小虾三级) | 2011-01-19 16:09
这样会导致 分页数据丢失的
支持(0) 反对(0) 隋凯 | 园豆:65 (初学一级) | 2011-01-20 08:30
0

这是浏览器的问题  想要不丢数据就只能异步提交了

aixuexi | 园豆:210 (菜鸟二级) | 2011-01-24 18:33
0

应该把实际的情况简单说明一下,才好让博友帮你分析和解决。

五香瓜子 | 园豆:450 (菜鸟二级) | 2011-01-28 11:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册