ASP.NET 多次提交的解决办法2

例如:
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秒钟按钮才能点击。即页面回发一后按钮才能用。这样可以有效的防止用户多次点击按钮,造成多次提交!

(0)

相关推荐

  • ASP.NET 防止按钮多次提交核心实现代码

    复制代码 代码如下: <asp:Button ID="btnSubmit" runat="server" UseSubmitBehavior="false" OnClientClick="this.disabled=true; " Text="Submit" OnClick="Button1_Click" /> 主要添加 复制代码 代码如下: UseSubmitBehavio

  • 如何拒绝同一张表单被多次提交?

    如何拒绝同一张表单被多次提交?formtest.asp ' 表单文件. <% Randomize ' 初始化随机数种子. num1=rnd() ' 产生随机数. num1=int(26*num1)+65 ' 修改num1的范围,使其是A-Z范围的Ascii码,防止表单名出错. session("antry")="test"&chr(num1) ' 产生随机字符串. %> <form name="test" action=

  • ASP.NET 多次提交的解决办法

    它的原理是:asp.net页面提交的时候会调用ValidatorOnSubmit方法(内置的),我们利用js方法的覆盖特性,把系统内置的ValidatorOnSubmit替换成我们的版本,然后当执行ValidatorOnSubmit时屏蔽掉页面上所有提交按钮(也可以执行你自己的方法) //屏蔽所有提交按钮 function disableOtherSubmit() { var obj = event.srcElement; var objs = document.getElementsByTag

  • JS防止用户多次提交的简单代码

    复制代码 代码如下: <html><body> <form action="login.action" method="post">  <input type="button" name="btn" value="提交表单" onclick="return sub();" /> </form></body></

  • Chrome Form多次提交表单问题的解决方法

    今天用chrome提交一个表单时,发现一个奇怪的问题: 复制代码 代码如下: //提交表单 document.frmOrder.action = 'http://www.abc.com/d.aspx'; document.frmOrder.method = 'POST'; document.frmOrder.target = '_blank'; document.frmOrder.submit(); 第一次提交可以,第二次提交就没有任何响应了.需要重新加载页面后才可以提交,而这个问题在Firef

  • ASP.NET 多次提交的解决办法2

    例如: 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", &quo

  • Asp.net中阻止页面按钮多次提交的解决办法

    问题背景: 手头上的KPI分类评级考核系统,页面的提交按钮是用LinkButton或者Button做的.当大量用户同时在线访问该站点时,应用程序服务器出现CPU占用100%的糟糕状况,页面会卡住不动,用户不明情况连续点击提交按钮重复提交,造成数据库中出现大量的重复数据. 其实,即便服务器没有崩掉,快速频繁点击提交按钮,也会出现重复提交的问题. 尝试过:1)在提交按钮的点击事件里设置提交按钮的Enabled属性 Enabled = false; ,这个属性设置在未拿到新页面前是无效的,问题依然存在

  • Win7 IIS7.5运行ASP时出现500错误的解决办法

    http 500内部服务器错误说明IIS服务器无法解析ASP代码,如果你联网还发现找不到服务器就是500错误了. 在iis7里面的iis设置要开启启用父路径这个选项,之后就可以了,当然为了调试程序可以打开"ASP设置选项-调试属性"里面的一些调试功能,方便程序的调试. Win7 IIS7.5运行ASP时出现500错误的解决办法 请确保在你的电脑上IIS配置完成了,静态页面能打开了,但是打开ASP就会出现500错误.再进行下面配置.具体如下: 一.进入"C:\Windows\S

  • WIN2008系统安装IIS7配过ASP后打开ASP网站为500错误的解决办法

    访问ASP网站时总是提示:"500 - 内部服务器错误.您要查找的资源有问题,无法显示." 上面显示的是IIS的友好报错,按下面的步骤把详细错误显示出来! 1.在IIS管理器→ASP里,把错误信息发送到浏览器这个选项开启(True),并注意在IE设置里去掉"显示友好的错误":2.然后在"错误页"设置选项里,双击500那一行,再点文件按路径后面的"设置".在跳出的对话框中将"相对文件路径"里的文件名改为&qu

  • ASP运行在IIS6 500错误解决办法

    登录页面能访问得到,但当执行下级目录的文件就不行了,浏览器直接跳出以下错误页面: 除些以外没有任何其它有价值的信息,因为此网站在我的电脑上执行是正常的,猜想应该是IIS配置上的问题(早就听说IIS的安全性提高了,是否是有做过限制),但我的代码都是非常标准的ASP代码呀,没有用过任何第三方插件.但在IIS的属性中查看良久,相关的选项都选择过了,都没有反应,仍然就是上面这个页面.正在首页上乱点乱点时,突然跳出另一个画面来,大意是说"没有访问父路径的权限".奇怪了,为何会有这个错误,这在II

  • Ajax提交参数的值中带有html标签不能提交成功的解决办法(ASP.NET)

    最近在公司做资源及文章上传功能遇到一个小问题,被坑了好半天. 该功能就类似利用富文本编辑器发布信息,但是用Ajax提交数据,因此提交参数值中不可避免的含有html标签. 在本地运行代码一直没问题,总是可以提交成功,但是代码部署到线上就不能成功提交数据了,被坑了好久,找了好半天才找到问题所在. 提交不成功的原因是因为我的提交数据中含有html标签,然后直接无法请求到我的目标地址.     然后解决办法如下: 1.在页面用JS的Base64编码(类似加密)带有html标签的参数值. 2.在目标地址获

  • asp.net中“从客户端中检测到有潜在危险的Request.Form值”错误的解决办法

    在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" .asp.net中的请求验证特性提供了某一等级的保护措施防止XSS攻击,asp.net的请求验证是默认启动的. 这里给出不同版本.net的解决方法. asp.net 2.0 通常解决办法 方案一: 将.aspx文件中的page项添加ValidateRequest="false" ,如下: <%@ Page ValidateRequest=&qu

  • asp下对POST提交数据限制的解决方法

    问题的解决办法是,对于一个需要发送大数据的域,在提交表单前将数据拆分为小于限额的数份,分别放在数个hidden域中,同时把原有域清空,再正式提交表单.服务器端还是用Request.Form()读取各hidden域的数据,再按照顺序把他们拼接起来就行了.主要代码如下: 注意:需要在Form中的HTML代码内指定一个DIV,以便向其中动态插入hidden域. ====客户端示例代码==== 在Form中的HTML代码内加入:<div id=divHidden></div>,在Form标

  • iis6网站属性没有asp.net选项卡的解决办法

    iis6安装了asp.net,但是网站属性中没有显示asp.net选项卡. 解决办法如下:   1,如果是只安装了.net framework 1.1 在iis中是不显示那个选项卡的.默认就会支持asp.net1.1.在安装了.net framework 2.0后,iis站点属性里才会有asp.net的选项.   2,安装asp.net2.0后,请关闭iis窗口,重新打开iis,iis站点属性里才会有asp.net的选项   3,如果还没有,那么就要重新在IIS中注册asp.net,方法如下:

随机推荐