注册或者点击按钮时,怎么防止用户重复提交数据(实例讲解)
程序员文章站
2024-03-31 14:46:28
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>");
}
如果页面按钮很多,那么可以采用另一种方式:
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。
<script runat="server">
sub submitbtn(obj as object, e as eventargs)
lblmsg.text = "submitted using the asp.net postback mechanism."
end sub
</script>
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>
上一篇: 19个MySQL性能优化要点解析