日期:2014-05-17  浏览次数:20534 次

浏览器所做的那些让人哭笑不得的事情 C #
浏览器怎么会这么变态呢
我做个功能,选中gridview上的一组数据,然后执行操作,之后想刷新一下网页,我点的是浏览器上的刷新,居然程序后台重新执行了一次操作,
这个要怎么办啊这是第一次的
我已经执行过操作的
我现在刷新一下网页
运单号变了
C#

------解决方案--------------------
执行完,直接<script>location.href="当前页";</script>
------解决方案--------------------
刷新页面当然重新执行后台代码啊,操作完不想刷新就重新绑定数据。
------解决方案--------------------

        protected void Page_Load(object sender, EventArgs e)
        {
            //加一个IsPostBack
            if (!IsPostBack)
            {
              //改变订单号,绑定gridview  

            }
        }

------解决方案--------------------
执行操作后应该马上刷新一下 gridview 的,设计不合理啊。
浏览器的刷新本来就是这样的,楼主还不习惯吧,应该少用或不用那个按钮
------解决方案--------------------
表单重复提交是web中常见的问题,百度搜索下有很多解决的方法,或者你的实现方式改下
------解决方案--------------------
不是浏览器变态,是asp.net控件有点二。

对gridview不了解,因为我虽然用asp.net编程,但基本不用Bug公司提供的控件。

看你的问题,应该是在你进行执行操作之后,.net服务器在你执行后的页面中留下了执行操作信息,所以在刷新页面后又执行了上步的操作。

建议在你进行执行操作后,“重新进入”相关页面,而非让控件回送数据,这样就能应该能够避免服务器在相关页面上留下不必要的执行信息。

或者屏掉页面F5键刷新功能,自己写个刷新按键,让页面“重新进入”。
------解决方案--------------------
或者你再研究一下gridview的属性,看有没有开关量可以屏掉“刷新页面即执行上步操作”的功能。
------解决方案--------------------
提交完成后 你这样弹个框 Response.Write("<script>window.alert('不能删除你自己');location.href='" + Request.Url.ToString() + "';</script>");  
话说你的问题我以前也经常遇到
------解决方案--------------------
引用:
浏览器怎么会这么变态呢
我做个功能,选中gridview上的一组数据,然后执行操作,之后想刷新一下网页,我点的是浏览器上的刷新,居然程序后台重新执行了一次操作,
这个要怎么办啊这是第一次的
我已经执行过操作的
我现在刷新一下网页
运单号变了

实际上,你这个操作就是像服务端post了一个请求。
asp.net的服务器控件都是会post提交的。
所以,你刷新的时候,会造成重复提交。