ASP.NET 多次提交的解决办法2 |
本文标签:ASP.NET,多次提交 例如: 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.Linq; 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; using System.Xml.Linq; 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秒钟按钮才能点击 。即页面回发一后按钮才能用 。这样可以有效的防止用户多次点击按钮,造成多次提交! |