C#禁止重复提交

Button1.Attributes.Add("onclick",   "this.value='正在提交中,请等待……';this.disabled=true;"   +   this.GetPostBackEventReference(Button1));

也可以做成自定义控件:
   
/**//// <summary>
    
/// 只能提交一次的按钮
    
/// </summary>
    public class ButtonSubmitOnce : Button
    {
        
private string _textonclick = "处理中,请稍后。。。";
        
private string _clientcheck;

        
protected override void Render(HtmlTextWriter writer)
        {
            StringBuilder temp 
= new StringBuilder();

            temp.Append(
this.OnClientClick);

            
if (!string.IsNullOrEmpty(_clientcheck)) temp.Append("if(!").Append(_clientcheck).Append(") return false;");

            
if (!string.IsNullOrEmpty(_textonclick)) temp.Append("this.value=\"").Append(_textonclick).Append("\";");

            
//this is for the ff
            temp.Append("if(null==window.onunload) window.onunload = function(){};");

            temp.Append(
"this.disabled = true;").Append(Page.GetPostBackEventReference(this));

            
this.OnClientClick = temp.ToString();

            
base.Render(writer);
        }

        
public string TextOnClick
        {
            
set { _textonclick = value; }
        }

        
public string ClientCheck
        {
            
set { _clientcheck = value; }
        }
    }

posted on 2010-03-30 11:33  Gsun  阅读(624)  评论(0编辑  收藏  举报

导航