Button1.Attributes.Add("onclick", "this.value='正在提交中,请等待……';this.disabled=true;" + this.GetPostBackEventReference(Button1));
编码成自定义控件使用,下载:Control.rar
代码
namespace Control
{
using System;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
public class Button : System.Web.UI.WebControls.Button
{
private string _clientcheck;
private string _textonclick = "提交中…";
protected override void Render(HtmlTextWriter writer)
{
StringBuilder builder = new StringBuilder();
builder.Append(this.OnClientClick);
if (!string.IsNullOrEmpty(this._clientcheck))
{
builder.Append("if(!(").Append(this._clientcheck).Append(")) return false;");
}
if (!string.IsNullOrEmpty(this._textonclick))
{
builder.Append("this.value=\"").Append(this._textonclick).Append("\";");
}
builder.Append("if(null==window.onunload) window.onunload = function(){};");
builder.Append("this.disabled = true;").Append(this.Page.GetPostBackEventReference(this));
this.OnClientClick = builder.ToString();
base.Render(writer);
}
public string ClientCheck
{
set
{
this._clientcheck = value;
}
}
public string TextOnClick
{
set
{
this._textonclick = value;
}
}
}
}
namespace Control
{
using System;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
public class ImageButton : System.Web.UI.WebControls.ImageButton
{
private string _clientcheck;
protected override void Render(HtmlTextWriter writer)
{
StringBuilder builder = new StringBuilder();
builder.Append(this.OnClientClick);
if (!string.IsNullOrEmpty(this._clientcheck))
{
builder.Append("if(!(").Append(this._clientcheck).Append(")) return false;");
}
builder.Append("if(null==window.onunload) window.onunload = function(){};");
builder.Append("this.disabled = true;").Append(this.Page.GetPostBackEventReference(this));
this.OnClientClick = builder.ToString();
base.Render(writer);
}
public string ClientCheck
{
set
{
this._clientcheck = value;
}
}
}
}
{
using System;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
public class Button : System.Web.UI.WebControls.Button
{
private string _clientcheck;
private string _textonclick = "提交中…";
protected override void Render(HtmlTextWriter writer)
{
StringBuilder builder = new StringBuilder();
builder.Append(this.OnClientClick);
if (!string.IsNullOrEmpty(this._clientcheck))
{
builder.Append("if(!(").Append(this._clientcheck).Append(")) return false;");
}
if (!string.IsNullOrEmpty(this._textonclick))
{
builder.Append("this.value=\"").Append(this._textonclick).Append("\";");
}
builder.Append("if(null==window.onunload) window.onunload = function(){};");
builder.Append("this.disabled = true;").Append(this.Page.GetPostBackEventReference(this));
this.OnClientClick = builder.ToString();
base.Render(writer);
}
public string ClientCheck
{
set
{
this._clientcheck = value;
}
}
public string TextOnClick
{
set
{
this._textonclick = value;
}
}
}
}
namespace Control
{
using System;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
public class ImageButton : System.Web.UI.WebControls.ImageButton
{
private string _clientcheck;
protected override void Render(HtmlTextWriter writer)
{
StringBuilder builder = new StringBuilder();
builder.Append(this.OnClientClick);
if (!string.IsNullOrEmpty(this._clientcheck))
{
builder.Append("if(!(").Append(this._clientcheck).Append(")) return false;");
}
builder.Append("if(null==window.onunload) window.onunload = function(){};");
builder.Append("this.disabled = true;").Append(this.Page.GetPostBackEventReference(this));
this.OnClientClick = builder.ToString();
base.Render(writer);
}
public string ClientCheck
{
set
{
this._clientcheck = value;
}
}
}
}
web.config配置
<pages>
<controls>
<add tagPrefix="cc" namespace="Control" assembly="Control"/>
</controls>
</pages>
<controls>
<add tagPrefix="cc" namespace="Control" assembly="Control"/>
</controls>
</pages>
单独使用:
<cc:Button ID="Button1" runat="server" Text="Button" ClientCheck="Check()" OnClick="Button1_Click"/>
验证控件和js同时使用
<cc:Button ID="Button1" runat="server" Text="Button" ClientCheck="Check() && Page_ClientValidate()" OnClick="Button1_Click"/>
其中Check()为自定义js函数