asp.net中如何防止用户重复点击提交按钮

 

asp.net 中防止因为网速慢等影响交互的问题导致用户可能点击多次提交按钮,从而导致数据库中出现多条重复的记录,经过亲自验证在网上找的方法,找到两个切实可行的方法:
第一种方法1.
页面前台按钮:

<asp:Button ID="btnSumbit" runat="server" Text="提交" onclick="btnSumbit_Click" />

在后台Page_load事件中添加

btnSumbit.Attributes.Add("onclick", "this.disabled=true;" +this.ClientScript.GetPostBackEventReference(btnSumbit, ""));

在按钮点击事件中加入:

 System.Threading.Thread.Sleep(5000);//延迟5秒钟 

这个五秒钟不是定值,你可以根据自己的情况而定

第二种方法:

页面前台按钮:

 <asp:Button ID="btnSumbit" runat="server" UseSubmitBehavior="false" OnClientClick="this.value='正在提交';this.disabled=true;"    Text="提交" onclick="btnSumbit_Click" /> 

注意这个UseSubmitBehavior 属性
后台就没有什么要添加的了。

好了,说了上面的方法,有几个问题,第一

btnSumbit.Attributes.Add("onclick", "this.disabled=true;" +this.ClientScript.GetPostBackEventReference(btnSumbit, ""));

这句话有什么作用,什么意思呢

第二:

UseSubmitBehavior 属性 什么意思呢

希望高手解答,thanks

在网上百度了一下,找到了这样的解释:

<W3school的解释

UseSubmitBehavior 属性规定按钮控件使用客户端浏览器内建的提交功能,还是使用 ASP.NET 的 postback 机制。

该属性被设置为 TRUE,如果控件使用浏览器的提交机制。否则为 FALSE。默认值是 TRUE。

当设置为 FALSE 时,ASP.NET 会添加一段客户端脚本来回传该表单。

当 UseSubmitBehavior 属性为 false 时,控件开发人员可以使用 GetPostBackEventReference 方法来返回 Button 的客户端回发事件。GetPostBackEventReference 方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。

<其他的一些

Button的UseSubmitBehavior属性设为false后它就不是执行submit的动作而是一般的Button而此时如果使用OnClientClick ="if (confirm('确定吗?')==false) {return false;}"才会有效果

我要一步一步往上爬 在最高点乘着叶片往前飞 任风吹干 流过的泪和汗 我要一步一步往上爬 等待阳光静静看着它的脸 小小的天有大大的梦想 我有属于我的天 任风吹干流过的泪和汗 总有一天我要属于我的天

asp.net中如何防止用户重复点击提交按钮的更多相关文章

  1. ASP.NET防止连续多次点击提交按钮 导致页面重复提交

    PS:实际使用中发现,第①种方法在火狐浏览中有时候有问题.第2种方法,在各个浏览器中都没问题 近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手 ...

  2. iOS之防止用户重复点击Button(按钮)问题

    在项目中,我们往往会遇到这样的问题:因为网络较慢的原因,用户会不耐烦的一直去点击按钮,这样导致的结果时:相关代码一遍一遍的被重复执行,如果按钮的事件是网络请求的话,这样又导致一种网络请求的循环.所以我 ...

  3. 谈谈防止Ajax重复点击提交

    首先说说防止重复点击提交是什么意思. 我们在访问有的网站,输入表单完成以后,单击提交按钮进行提交以后,提交按钮就会变为灰色,用户不能再单击第二次,直到重新加载页面或者跳转.这样,可以一定程度上防止用户 ...

  4. ASP.NET多次点击提交按钮以及Session超时和丢失过期问题

    1.ASP.NET防止多次点击提交按钮 对于一个按钮,要让变成恢色的,只要this.disabled=true就可以了,可是在.NET里,添加了OnClick事件后,就无法提交信息了.所以要加上以下代 ...

  5. ASP.Net中防止页面刷新重复提交的几种方法

    [摘要] 目前很多网站都要提交页面插入或更新数据库,比如留言本,一个用户提交留言后,如果按F5,就会重新提交一遍留言,导致数据库出现两条一模一样的留言,本文介绍了几种防止页面刷新,导致重复提交数据的方 ...

  6. 1 asp.net 中如何把用户控件应用于母版页

    1 创建用户控件 2 在母版页中注册用户控件 3 使用 <%@ Master Language="C#" AutoEventWireup="true" C ...

  7. 在ASP.NET中如何判断用户IE浏览器的版本

    f ( Request.Browser.MajorVersion == ) { // to do } ................................................. ...

  8. ASP.NET怎么防止多次点击提交按钮重复提交

    今天做一个系统,由于服务器有点慢,所以常会被点击两次或三次,提交的数据就是多次了.所以要让按钮点击后,不能再次点击. 对于一个按钮,要让变成恢色的,只要this.disabled=true就可以了,可 ...

  9. 避免用户重复点击按钮(使用Enable:=False,消息繁忙时会有堵塞的问题,只能改用Sleep)

    // 现象描述://    用户点击按钮后程序开始繁忙工作,这时候用户不知道是否成功,就继续点几次//    采用Enalbe = false ... = true的方式发现还会触发点击,分析原因如下 ...

随机推荐

  1. [GodLove]Wine93 Tarining Round #9

    比赛链接: http://vjudge.net/contest/view.action?cid=48069#overview 题目来源: lrj训练指南---二维几何计算   ID Title Pro ...

  2. php判断json对象是否存在的方法

    在实际测试中php读取json数组时 使用简单的 if 或者 array_key_exists 去判断对象是否存在是会报错的,以下是google搜寻的正确判断方法 实际上出现报错只是我对php还不是很 ...

  3. redis-cluster 迁移过程错误记录

    因为集群内的 单点redis消耗 内存达到了14个G,所以需要增加新的节点,并将数据迁移过去,使用 redis-trib reshard ip:port A : 2105slot       14.5 ...

  4. 事件的委托处理 javascript

    javascript的事件模型,采用"冒泡"模式,即子元素的事件会逐级向上"冒泡",成为父元素的事件.这点可以简化事件的绑定... 例如,一个表格(table) ...

  5. 将程序部署到weblogic出现乱码问题

    出现错误: 将文件部署到weblogic上,在linux环境下运行程序时出现乱码问题 原因: (1)可能是linux系统的编码问题 解决办法:登陆weblogic 输入命令: cd /etc/sysc ...

  6. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  7. PHP代码实用片段

    一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); ...

  8. apache2.2 搭载本地中转服务器

    android手机微信里点击本地链接=>apache2.2服务器响应--- 翻译网址至本地目标服务器 ---目标服务器响应,返回结果给微信浏览器. 运行环境 微信版本6.3.8 手机 MIUI6 ...

  9. 【转载】让你的MATLAB代码飞起来

    原文地址:http://developer.51cto.com/art/201104/255128_all.htm MATLAB语言是一种被称为是"演算纸"式的语言,因此追求的是方 ...

  10. lua-nginx-module 学习

    下载安装LuaJIT cd /usr/local/src sudo wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz tar -xzvf LuaJ ...