asp.net 防止二次提交 以及UseSubmitBehavior属性
2013-03-01 11:26
706 查看
这是一个非常普通的需求。
页面上有一个按钮,点击之后提交表单,如果什么都不管的话,用户可以在服务器响应完成之前再次点击,这样就出现了二次提交,后果可大可小。
那么我们应该防止二次点击,就要在用户点第一次之后马上Disable这个按钮。
具体:
按钮代码:
Javascript:
然后在后台代码里的Button1_Click事件里再做你想做的事情。
我们可以注意到这里是用OnClientClick的属性来调用Javascript从而实现Disable按钮的。开始的时候,我没有加入UseSubmitBehavior属性,就变成了点击按钮只执行客户端的代码,服务器端代码就不执行了。为了解决这个问题,加入了UseSubmitBehavior属性,并且要把他的值设为false。
为什么要设为false呢?简单来说,false表示不用客户端方法提交,则从服务器端提交,也就是执行OnClick的事件。反之,如果是true,则从客户端提交,忽略服务器端的事件。具体请看MSDN:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx
页面上有一个按钮,点击之后提交表单,如果什么都不管的话,用户可以在服务器响应完成之前再次点击,这样就出现了二次提交,后果可大可小。
那么我们应该防止二次点击,就要在用户点第一次之后马上Disable这个按钮。
具体:
按钮代码:
<asp:Button ID="Button1" runat="server" UseSubmitBehavior="false" OnClick="Button1_Click" Text="Button" OnClientClick="DisableButton(this)" />
Javascript:
<script> function DisableButton(b) { b.disabled = true; b.value = 'Submitting'; } </script>
然后在后台代码里的Button1_Click事件里再做你想做的事情。
我们可以注意到这里是用OnClientClick的属性来调用Javascript从而实现Disable按钮的。开始的时候,我没有加入UseSubmitBehavior属性,就变成了点击按钮只执行客户端的代码,服务器端代码就不执行了。为了解决这个问题,加入了UseSubmitBehavior属性,并且要把他的值设为false。
为什么要设为false呢?简单来说,false表示不用客户端方法提交,则从服务器端提交,也就是执行OnClick的事件。反之,如果是true,则从客户端提交,忽略服务器端的事件。具体请看MSDN:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx
相关文章推荐
- ASP.NET Button控件的UseSubmitBehavior属性引发的血案
- 防止二次提交 UseSubmitBehavior
- ASP.NET Button控件的UseSubmitBehavior属性引发的血案 推荐
- asp.net 防止二次提交 以及UseSubmitBehavior属性
- asp.net按钮的UseSubmitBehavior属性体验
- asp.net里面button的submit,or usesubmitbehavior property (转载)
- ASP.NET 表单按钮防止二次提交
- UseSubmitBehavior="false" 防止页面重复提交bug
- asp.net禁用按钮以防止重复提交
- asp.net防止刷新时重复提交
- ASP.NET 后退问题 .net 防止刷新 后退重复提交
- 防止ASP.NET按钮多次提交的办法及延伸
- asp.net清除页面缓存,防止页面回退重复提交数据及防止同一用户同时登录
- ASP.NET的防止重复提交的脚本
- asp.net页面button按钮防止重复提交的方法
- Asp.net实现弹出窗口提示,又防止刷新被重复提交的方法
- asp.net防止页面刷新引起重复提交数据
- ASP.Net中防止页面刷新重复提交的几种方法
- asp.net页面防止按钮重复提交的小技巧