zl程序教程

您现在的位置是:首页 >  后端

当前栏目

注册或者点击按钮时,怎么防止用户重复提交数据(实例讲解)

实例注册数据 怎么 用户 重复 提交 讲解
2023-06-13 09:15:14 时间

asp.net实现点击按钮后设按钮不可用并提交

复制代码代码如下:

<asp:ButtonID="Button1"runat="server"Text="123456"OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="False" onclick="Button1_Click"/>

客户端加载的时候,重新将这个操作再启动
复制代码代码如下:

   <scriptlanguage="javascript"type="text/javascript">
       functioncontrolButton(flag){
           varbtnObj=document.getElementById("Button1");
           btnObj.disabled=flag;   
       }

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

后台代码:
复制代码代码如下:
protectedvoidButton1_Click(objectsender,EventArgse)
       {
           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:buttonid="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.NETUseSubmitBehavior属性

定义和用法
UseSubmitBehavior属性规定按钮控件使用客户端浏览器内建的提交功能,还是使用ASP.NET的postback机制。

该属性被设置为TRUE,如果控件使用浏览器的提交机制。否则为FALSE。默认值是TRUE。

当设置为FALSE时,ASP.NET会添加一段客户端脚本来回传该表单。

当UseSubmitBehavior属性为false时,控件开发人员可以使用GetPostBackEventReference方法来返回Button的客户端回发事件。GetPostBackEventReference方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。

语法
<asp:ButtonUseSubmitBehavior="TRUE|FALSE"runat="server"/>实例
下面的例子使用ASP.NET的postback机制:

复制代码代码如下:
<scriptrunat="server">
SubSubmitBtn(objAsObject,eAsEventArgs)
 lblMsg.Text="SubmittedusingtheASP.NETpostbackmechanism."
EndSub
</script>

<formrunat="server">
Clickthebutton:
<asp:buttonid="Button1"runat="server"
Text="Submit"onclick="SubmitBtn"
UseSubmitBehavior="FALSE"/>
<br/>

<asp:labelid="lblMsg"runat="server"/>
</form>