热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

出处:http:blog.csdn.netTeng_s2000archive20051017505928.aspx此处提供的代码用来实现当asp.net页面中的某个Button被点
出处:http://blog.csdn.net/Teng_s2000/archive/2005/10/17/505928.aspx
此处提供的代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致的多次提交。基于之前的onceclickbutton脚本.

<script language&#61;"Javascript">
        

        script>
public 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 
&#61; new System.Text.StringBuilder();
                sb.Append(
"if (typeof(Page_ClientValidate) &#61;&#61; &#39;function&#39;) { if (Page_ClientValidate() &#61;&#61; false) { return false; }}");    //保证验证函数的执行
                sb.Append("if(window.confirm(&#39;are you sure?&#39;)&#61;&#61;false) return false;");        //自定义客户端脚本
                sb.Append("disableOtherSubmit();");        // disable所有submit按钮
                sb.Append(this.GetPostBackEventReference(this.Button3));    //用__doPostBack来提交&#xff0c;保证按钮的服务器端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);
        }
        
        
/// 
        
/// Required method for Designer support - do not modify
        
/// the contents of this method with the code editor.
        
/// 

        private void InitializeComponent()
        {    
            
this.Button3.Click &#43;&#61; new System.EventHandler(this.Button3_Click);
            
this.Load &#43;&#61; 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的.

 

转:https://www.cnblogs.com/happyday56/archive/2007/11/28/975010.html



推荐阅读
author-avatar
kingjade999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有