程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 注冊或者點擊按鈕時,怎麼防止用戶重復提交數據(實例講解)

注冊或者點擊按鈕時,怎麼防止用戶重復提交數據(實例講解)

編輯:ASP.NET基礎

asp.net實現點擊按鈕後設按鈕不可用並提交
復制代碼 代碼如下:
<asp:Button ID="Button1" runat="server" Text="123456" OnClientClick="this.disabled=true;this.form.submit(); "  UseSubmitBehavior= "False"  onclick="Button1_Click" />

客戶端加載的時候,重新將這個操作再啟動
復制代碼 代碼如下:
    <script language="javascript" type="text/javascript">
        function controlButton(flag) {
            var btnObj = document.getElementById("Button1");
            btnObj.disabled = flag;   
        }

    </script>
</head>
<body onload="controlButton(false);">

後台代碼:
復制代碼 代碼如下:
protected void Button1_Click(object sender, EventArgs e)
        {
            Thread.Sleep(3000);
            Response.Write("123213<br>");
            Response.Write("123213<br>");
            Response.Write("123213<br>");
        }

如果頁面按鈕很多,那麼可以采用另一種方式:

後台page_load代碼:
復制代碼 代碼如下:
this.BtnSend.Attributes.Add("onclick", this.GetPostBackEventReference(this.BtnSend) + ";this.disabled=true; ");

前台button的代碼:
復制代碼 代碼如下:
 <asp:button id="BtnSend" runat="server" Width="80px" ForeColor="White"
                Text="發送" BackColor="#376091" BorderColor="#FFFFFF" Font-Bold="True"
                style="height: 24px" Font-Size="13px" BorderStyle="None"   OnClick="BtnSend_Click" ></asp:button>

因為控件的this.disabled設置後,控件為禁用狀態,無法在回發調用後台的事件方法,所以必須用GetPostBackEventReference先進行回調後台的事件方法後,再調用disabled=true。

ASP.NET UseSubmitBehavior 屬性

定義和用法
UseSubmitBehavior 屬性規定按鈕控件使用客戶端浏覽器內建的提交功能,還是使用 ASP.NET 的 postback 機制。

該屬性被設置為 TRUE,如果控件使用浏覽器的提交機制。否則為 FALSE。默認值是 TRUE。

當設置為 FALSE 時,ASP.NET 會添加一段客戶端腳本來回傳該表單。

當 UseSubmitBehavior 屬性為 false 時,控件開發人員可以使用 GetPostBackEventReference 方法來返回 Button 的客戶端回發事件。GetPostBackEventReference 方法返回的字符串包含客戶端函數調用的文本,可以插入到客戶端事件處理程序中。

語法
<asp:Button UseSubmitBehavior="TRUE|FALSE" runat="server" /> 實例
下面的例子使用 ASP.NET 的 postback 機制:
復制代碼 代碼如下:
<script runat="server">
Sub SubmitBtn(obj As Object, e As EventArgs)
  lblMsg.Text = "Submitted using the ASP.NET postback mechanism."
End Sub
</script>

<form runat="server">
Click the button:
<asp:button id="Button1" runat="server"
Text="Submit" onclick="SubmitBtn"
UseSubmitBehavior="FALSE" />
<br />

<asp:label id="lblMsg" runat="server"/>
</form>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved