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
}