防止ASP.NET按鈕多次提交代碼

來源:互聯網
上載者:User

1.<asp:Button ID="btnSumbit" runat="server" UseSubmitBehavior="false" OnClientClick="this.value='Sumbit';this.disabled=true; " Text="Sumbit" OnClick="btnSumbit_Click" />

2.對“添加”、“提交”、“儲存”、“更新”等按鈕需要對資料庫進行寫操作的按鈕,一定要在頁面初始化時載入指令碼,防止多次重複點擊,例如:

    protected void Page_Load(object sender, EventArgs e)

   {

            //.net1.1

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

            //.net 2.0以上

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

    }

為了測試,我們可以建立一個頁面,加入一個btnAdd按鈕

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddAndEditUser.aspx.cs" Inherits="AddUser" %><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>添加和編輯頁面樣本</title>   
</head>
<body>
    <form id="frmMain" runat="server">          
                <asp:Button ID="btnAdd" runat="server" CssClass="INPUT-BUTTON-Save" OnClick="btnAdd_Click">
                </asp:Button>
    </form>
</body>
</html>

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class AddUser : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        btnAdd.Attributes.Add("onclick", "this.disabled=true;" + this.ClientScript.GetPostBackEventReference(btnAdd, ""));
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
     //延遲5秒鐘
      System.Threading.Thread.Sleep(5000);
    }
}
當點擊了按鈕,需要等5秒鐘按鈕才能點擊。即頁面回傳一後按鈕才能用。這樣可以有效防止使用者多次點擊按鈕,造成多次提交!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.