静思
思考中

导航

 

  // <summary>
    /// 防止重复提交
    /// </summary>
    /// <param name="imaButtons">按键集合</param>
    /// <param name="clientID">页面有JS验证的组件</param>
    public void RepeatSubmitCheckForRC( List<Button> Buttons)
    {
        foreach (Button button in Buttons)
        {
           //sb保存的是JavaScript脚本代码,点击提交按钮时执行该脚本
        StringBuilder sb = new StringBuilder();
        
//保证验证函数的执行 
        sb.Append("if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }};");
        
//点击提交按钮后设置Button的disable属性防止用户再次点击,注意这里的this是JavaScript代码
        sb.Append("this.disabled  = true;");
        
//用__doPostBack来提交,保证按钮的服务器端click事件执行 
        sb.Append(this.ClientScript.GetPostBackEventReference(button"")); 
        sb.Append(";");
        
//SetUIStyle()是JavaScript函数,点击提交按钮后执行,如可以显示动画效果提示后台处理进度
        
//注意SetUIStyle()定义在aspx页面中
        sb.Append("SetUIStyle();");
        
//给提交按钮增加OnClick属性
        button.Attributes.Add("onclick", sb.ToString());        }
    }

调用方法的时候

        List<Button> Buttons = new List<Button>();
        Buttons.Add(sumbitButton);
        Buttons.Add(saveButton);
        RepeatSubmitCheckForRC(Buttons);

 

客户端代码

  <script language="javascript" type="text/javascript">
       //点击扣款按钮时,设置控件为Disabled
       function SetUIStyle() {
           var tbxText = document.getElementById("tbxText");
           tbxText.disabled = true;
           var labMessage = document.getElementById("lblMessage");
           labMessage.innerText = "正在提交到服务器...";
       }
    </script>

转载地址:http://cao416451347ming.blog.163.com/blog/static/115455616201041753513152/

posted on 2010-09-01 14:12  murry  阅读(606)  评论(0)    收藏  举报