`

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

    博客分类:
  • .NET
阅读更多

转自众志教程网

 

处提供的代码用来实现当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.type.toLowerCase() == 'submit')
{
objs.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 )

    - **IsPostBack属性**:ASP.NET中的`Page`对象有一个`IsPostBack`属性,它指示当前请求是否由用户交互(如表单提交)触发的页面回发。如果`IsPostBack`为`true`,则表明是刷新或回发,否则为新打开的页面。 - `...

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

    在提供的"CFUpdateImages"文件中,很可能包含了实现上述功能的代码示例,包括前端HTML和JavaScript代码,以及后端ASP.NET的C#或VB.NET处理代码。通过分析这些代码,你可以更深入地理解图片批量上传的实现细节。 ...

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

    在***中,防止按钮多次提交的一种简单方法是通过客户端和服务器端的联合控制来实现。具体来说,可以在客户端使用JavaScript或者在服务器端使用***的按钮属性来控制按钮的状态。 使用`UseSubmitBehavior`属性和`...

    Asp.net 验证码控件

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

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

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

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

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

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

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

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

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

    用asp.net做的选票系统

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

    ASP.net在线投票系统

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

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

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

    ASP.NET简单投票

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

    ASP.NET上传控件

    附带的使用说明书应该详细介绍了如何在项目中引用eWebapp.Upload.dll,如何在ASP.NET页面上添加和配置控件,以及如何编写相应的服务器端和客户端代码来处理文件上传。阅读这份说明书是理解和使用这个控件的关键,...

Global site tag (gtag.js) - Google Analytics