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;}"才会有效果

  • 相关阅读:
    spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
    在zepplin 使用spark sql 查询mongodb的数据
    Unable to query from Mongodb from Zeppelin using spark
    spark 与zepplin 版本兼容
    kafka 新旧消费者的区别
    kafka 新生产者发送消息流程
    spark ui acl 不生效的问题分析
    python中if __name__ == '__main__': 的解析
    深入C++的new
    NSSplitView
  • 原文地址:https://www.cnblogs.com/MrALei/p/2816790.html
Copyright © 2011-2022 走看看