public class BlurTextbox : TextBox, IPostBackEventHandler { #region control events protected override void OnInit(EventArgs e) { base.OnInit(e); if (!Page.ClientScript.IsClientScriptBlockRegistered("OnBlurTextboxEvent")) Page.ClientScript.RegisterStartupScript(GetType(), "OnBlurTextboxEvent", GetScript(), true); Attributes.Add("onblur", "OnBlurred('" + UniqueID + "','')"); } #endregion #region OnBlur event public delegate void OnBlurDelegate(object sender, EventArgs e); public event OnBlurDelegate Blur; private void RaiseOnBlurEvent() { if (Blur != null) { Blur(this, EventArgs.Empty); } } #endregion #region methods private string GetScript() { return "function OnBlurred(control, arg)\n{\n __doPostBack(control, arg);\n}"; } #endregion #region Implementation of IPostBackEventHandler /// /// When implemented by a class, enables a server control to process an event raised when a form is posted to the server. /// /// A that represents an optional event argument to be passed to the event handler. public void RaisePostBackEvent(string eventArgument) { RaiseOnBlurEvent(); } #endregion }