ASP.NET 多次提交的解决办法2
程序员文章站
2022-05-22 13:44:04
例如: protected void page_load(object sender, eventargs e) { //.net1.1 button1.attribute...
例如:
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秒钟按钮才能点击。即页面回发一后按钮才能用。这样可以有效的防止用户多次点击按钮,造成多次提交!
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秒钟按钮才能点击。即页面回发一后按钮才能用。这样可以有效的防止用户多次点击按钮,造成多次提交!
上一篇: 为什么我的物联网创业失败?看看这五个原因
下一篇: C#中WebClient实现文件下载
推荐阅读
-
ASP.NET MVC实现多个按钮提交的方法
-
asp.net下用url重写URLReWriter实现任意二级域名的方法第1/2页
-
ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统之前端页面框架构建源码分享
-
Visual Studio 2017下ASP.NET CORE的TagHelper智能提示解决办法
-
ASP.NET使用X509Certificate2出现一系列问题的解决方法
-
详解struts2的token机制和cookie来防止表单重复提交
-
ASP.NET Core2实现静默获取微信公众号的用户OpenId
-
Asp.Net中避免重复提交和弹出提示框的实例代码
-
ASP.NET 多次提交的解决办法2
-
ASP.NET 多次提交的解决办法