`

ASP.NET中防止页面多次提交的代码实现【转】

阅读更多
Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致的多次提交。基于之前的onceclickbutton脚本.

//ASP.NET中防止页面多次提交的代码:javascript< script language="javascript"> < !-- function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTagName('INPUT');
for(var i=0; i< objs.length; i++)
{
if(objs[i].type.toLowerCase() == 'submit')
{
objs[i].disabled = true;
}
}
} //--> < /script>//ASP.NET中防止页面多次提交的代码:asp.netpublic class PreventMultiClick : System.Web.UI.Page {
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.Button Button3; private void Page_Load(object sender, System.EventArgs e)
{
this.GetPostBackEventReference(this.Button3);
//保证 __doPostBack(eventTarget, eventArgument) 正确注册 if(!IsPostBack)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("if (typeof(Page_ClientValidate) == 'function')
{
if (Page_ClientValidate() == false)
{
return false;
}
}"); //保证验证函数的执行 sb.Append("if(window.confirm('are you sure?')==false) return false; ");
//自定义客户端脚本 sb.Append("disableOtherSubmit(); ");
// disable所有submit按钮 sb.Append(this.GetPostBackEventReference(this.Button3));
//用__doPostBack来提交,保证按钮的服务器端click事件执行 sb.Append("; ");
Button3.Attributes.Add("onclick",sb.ToString());
}
} #region Web Form Designer generated code override protected void OnInit(EventArgs e)
{
// // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent();
base.OnInit(e);
}
/// < summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// < /summary> private void InitializeComponent()
{
this.Button3.Click += new System.EventHandler(this.Button3_Click); this.Load += new System.EventHandler(this.Page_Load);
}
#endregion private void Button3_Click(object sender, System.EventArgs e)
{
System.Threading.Thread.Sleep(3000);
Response.Write("Hello world!");
}
} 此处只是disable掉所有的submit button, 我觉得其它的可提交控件也是可以通过类似的方法来disable的.
分享到:
评论

相关推荐

    ASP.NET中防止刷新页面造成表单重复提交

    ### ASP.NET中防止刷新页面造成表单重复提交 在Web应用程序开发中,特别是在使用ASP.NET进行网站构建时,一个常见的问题是表单重复提交。这通常发生在用户通过按下浏览器的F5键来刷新页面的情况下,此时之前的表单...

    Asp.net防止页面被多次提交

    ### ASP.NET 防止页面被多次提交 在 Web 开发中,特别是在 ASP.NET 这样的框架下,防止页面被多次提交是一个常见的需求。当用户点击提交按钮后,可能会因为网络延迟、误操作等原因而重复点击提交按钮,导致数据被多...

    ASP实例开发源码—asp.net(c571)等待效果和防止多次提交的代码.zip

    - `132687965042205706`: 这可能是ASP.NET源代码文件,如.aspx或.cs文件,其中包含了实现等待效果和防止多次提交的具体代码。你需要解压文件并查看这些代码,了解其工作原理。文件名中的数字可能与项目创建时间或者...

    ASP.NET同学录系统的设计与实现

    总的来说,ASP.NET同学录系统的设计与实现是一次综合性的实践,涵盖了Web开发中的多个重要技术点,包括数据库操作、用户认证、页面交互、数据安全等。对于学习ASP.NET和Web开发的学生来说,这是一个很好的学习案例,...

    在ASP.NET中实现多文件上传(示例源码)

    在ASP.NET中实现多文件上传是一项常见的功能,尤其在构建Web应用程序时,用户可能需要一次上传多个文件,例如图片、文档或视频。本教程将详细解释如何在ASP.NET环境中实现这一功能,包括必要的HTML控件、服务器端...

    c# asp.net在线考试系统源代码

    **答题和提交**流程中,系统需要处理用户的答案,可能需要实现计时器、随机排序选项、防止作弊的机制(如防止多次提交)。用户完成考试后,系统会自动或手动评分,并保存成绩。 **成绩计算和报告**模块根据设定的...

    ASP.NET单点登录的代码实现

    ASP.NET单点登录(Single Sign-On,SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。它极大地提升了用户体验,并且强化了系统的安全性,因为用户只需管理一个账号,...

    防止表单重复提交(asp.net )

    在ASP.NET web应用程序中,表单重复提交是一个常见的问题,可能导致数据不一致或者数据库操作的冗余。为了确保用户在提交表单时不会无意或有意地多次发送请求,我们需要实施有效的防止表单重复提交的策略。以下是...

    asp.net Form提交的图片批量上传

    ASP.NET Form提交的图片批量上传是一项常见的Web开发任务,它涉及到客户端与服务器之间的数据交互,以及文件处理技术。在这个过程中,用户可以选择多张图片并一次性发送到服务器进行存储或处理。下面将详细介绍这个...

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

    ***防止按钮多次提交的核心实现技术涉及到Web开发中一个常见问题,即用户在提交表单时可能会重复点击提交按钮,导致服务器端接收到多次请求。这不仅会消耗服务器资源,还可能产生错误的业务操作,如重复注册、多次扣...

    Asp.net 验证码控件

    在Asp.net开发中,验证码控件是一种常用的安全机制,用于防止自动机器人或者恶意脚本进行非法操作,如批量注册、频繁提交表单等。它通常要求用户输入图像上显示的一串随机字符,以此来验证用户是真实的人而不是程序...

    ASP.NET四种页面导航方式的比较与选择

    对于需要在代码中控制导航的情况,Response.Redirect适用于希望浏览器重新请求新页面的场景,而Server.Transfer则适合在同一个应用程序内部进行页面切换,特别是需要保持状态或优化性能时。Server.Execute则适合在...

    用asp.net做的选票系统

    在ASP.NET Web Forms中,C#用于编写服务器端代码,处理用户交互,控制页面生命周期,以及与数据库交互。 开发环境Visual Studio 2003是微软早期的集成开发环境(IDE),尽管现在有更现代的版本,但在当时,它提供了...

    asp.net课程设计——留言板

    此外,可以考虑添加分页功能,如果留言数量较多,防止一次性加载过多数据影响页面性能。 安全性是任何Web应用都必须考虑的重要因素。在ASP.NET中,可以通过身份验证和授权机制来控制用户访问权限。对于这个留言板,...

    ASP.NET中防止页面刷新造成表单重复提交执行两次操作

    这是因为用户刷新页面时,浏览器会再次发送前一次的表单请求,导致服务器端可能对同一个表单数据执行多次操作,比如多次插入相同的记录到数据库中。 为了防止这种情况,我们可以采用在Session中存储一个唯一标识符...

    asp.net页面防止重复提交示例分享

    当用户不小心点击了提交按钮多次,或者恶意地多次提交相同的表单,都可能导致后端服务器接收到重复的数据,这可能会造成资源浪费、数据不一致以及可能的安全漏洞。因此,实现一个防止重复提交的机制就显得尤为重要。...

    ASP.net在线投票系统

    3. **服务器端逻辑**:当用户提交投票时,服务器端的ASP.NET代码会接收到请求,验证投票的有效性(例如,防止同一用户多次投票),更新数据库中的投票记录,并计算新的票数和百分比。这部分逻辑可能会使用C#或VB.NET...

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

    在***开发中,页面按钮多次提交是一个常见问题,尤其在需要处理大量并发用户请求的场景下,这个问题会导致服务器资源(如CPU)占用率飙升,并可能引发数据库中的重复数据记录问题。针对这一问题,可以采取多种技术...

    asp.net等待效果

    在ASP.NET开发中,"等待效果"是一种用户体验优化技术,用于在执行耗时操作(如数据库查询、文件处理或异步任务)时向用户显示一个加载指示器,以表明系统正在处理请求,让用户知道页面并未卡死。这种效果能够提高...

    ASP.NET简单投票

    ASP.NET简单投票是一个基于微软的ASP.NET技术实现的...总之,ASP.NET简单投票应用是一个涵盖前端交互、后端处理、数据存储和安全策略等多个方面的小型Web项目,它展示了ASP.NET框架在开发实际应用中的灵活性和实用性。

Global site tag (gtag.js) - Google Analytics