zoukankan      html  css  js  c++  java
  • 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;}"才会有效果

  • 相关阅读:
    完全自主创建Wrapper Tomcat容器
    python新手菜鸟之基础篇
    使用python抓取数据之菜鸟爬虫1
    简单实现Python调用有道API接口(最新的)
    演示嵌套函数定义及使用装饰器
    纯手工搭建VS 2017(社区 免费版)离线安装包
    C#中的PropertyGrid绑定对象,通过改变某一值而动态设置部分属性的特性
    WinForm 画布的标尺和网格
    Open Source
    动态链接库-Win32 DLL的说明
  • 原文地址:https://www.cnblogs.com/MrALei/p/2816790.html
Copyright © 2011-2022 走看看