C#禁止重复提交
1:连续2次提交
Button1.Attributes.Add("onclick", "this.value='正在提交中,请等待……';this.disabled=true;" + this.GetPostBackEventReference(Button1));
2:刷新提交:
Response.Write(" <script language=javascript> alert( '采购成功 ');window.location.href=window.location.href; </script> ");
也可以做成自定义控件:
/**//// <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; }
}
}