首页
ASP教程
PHP教程
.NET教程
MSSQL教程
Mysql教程
Html/Css
JavaScript
Dreamweaver
站长
当前位置:
首页
>>
.Net技术问答1
>>
.Net问答2
>>烦人的问题!怎样避免页面刷新时,数据重新提交?
烦人的问题!怎样避免页面刷新时,数据重新提交?
问: 看了以前的帖子,都没有满意的答案。 ______________________________________________________________________________________________ 答1: 东西写好了,测试时才发现这个问题。头大了。。。。 ______________________________________________________________________________________________ 答2: 是指IE的工具条按钮和快捷菜单中的刷新吗,如果是这个,gz.... 如果不是,你试试if(!IsPostback) {...} ______________________________________________________________________________________________ 答3: 你可以用iframe试试。将需刷新的放在里面。ASP.NET页面编译数据一般都要刷新的。要不你说明你的情况,我看看。我写过很多这方面的程序! ______________________________________________________________________________________________ 答4: 页面刷新,数据肯定会重新提交,这是没办法避免的,因为这是IE做的事情 ______________________________________________________________________________________________ 答5: 是指IE的工具条按钮和快捷菜单中的刷新 已经有 private void Page_Load(object sender, System.EventArgs e) { if(!IsPostBack) .... } ______________________________________________________________________________________________ 答6: 刷新后,刚才的数据又灌到数据库中了。。。。。 ______________________________________________________________________________________________ 答7: 这种方法不行的 如果是IE的刷新,那么服务器是很难判断的,用IsPostBack只能判断是否第一次提交,和是不是刷新过来的没有关系 建议最好是在你比较不希望被刷新重新执行的代码执行完之后重新定向一遍,最简单的方法: Response.Redirect( Request.Url ); 但是这样无法保存ViewState 另外还有一个方法,但是这个方法比较取巧,是利用IE提交请求和刷新之间Headers的一点点不同来判断,但是这样做不保险,而且只适用IE: if( Request.Header["Accept"]!="*/*" ) { //页面是刷新来的 } else //页面是正常提交的 ______________________________________________________________________________________________ 答8: 虽然我的方法在IE下可以 但是我还是建议你不要这样做,最好的方法还是执行完操作之后重定向 ______________________________________________________________________________________________ 答9: 不好意思,条件错了 应该是 if( Request.Header["Accept"]=="*/*" ) //是刷新的 IE在第一次请求某个页面或者刷新该页面的时候,会把Accept这个Header置为"*/*" ______________________________________________________________________________________________ 答10: 提交数据成功,可重新定向这个页面,这样就不会因为刷新而再提交一次了 ______________________________________________________________________________________________ 答11: if(errInfo=="OK") { Response.Write("<script language=javascript>"); Response.Write("window.alert('操作成功!');"); Response.Write("</script>"); Response.Write("<script language=javascript>"); Response.Write("window.location='CaseInfo_Add.aspx'");//这是你的初始化页面 Response.Write("</script>"); return; } ______________________________________________________________________________________________ 答12: 谢谢! 我把Server.Transfer("****.aspx"); 改为 Response.Redirect("****.aspx"); 就可以了。 前者速度稍快一点,但State还在。 其实以前一直用Response.Redirect,不过没有注意到这个问题。
copyright 2004-2009
www.qqcf.com
all rights reserved. DIV+CSS架构
本站为学习性免费网站,没有任何商业性质,甚至连一个外部广告都没有投放
所有文章均来源于互联网,如发现有侵权,请来信告知,本站将会以最快的速度删除和改正,E-Mail:cftop@qq.com