Serverseitigen Event bei verlassen einer ASP-Textbox auslösen

Die Standard-Textbox von ASP.NET unterstützt leider nicht das Event „OnLeave“ oder „OnBlur“. Mit Hilfe des Javascript-Events „onblur“ kann ein solches Event ermöglicht werden. Damit man dies nicht für jede Textbox implementieren muss habe ich daraus ein Steuerelement gemacht und es als DLL-Datei angehangen. Ihr könnt es einfach über die Toolbox von Visual Studio benutzen (Anleitung).

Im folgenden der Code:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Rapidev.Web.Controls
{
    public class rdTextbox : TextBox, IPostBackEventHandler
    {
        #region control events

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            if (!Page.ClientScript.IsClientScriptBlockRegistered("OnLeaveTextboxEvent"))
                Page.ClientScript.RegisterStartupScript(GetType(), "OnLeaveTextboxEvent", GetScript(), true);

            Attributes.Add("onblur", "OnBlurred('" + UniqueID + "','')");
        }

        #endregion

        #region OnLeave event

        public delegate void OnLeaveDelegate(object sender, EventArgs e);

        public event OnLeaveDelegate Leave;

        private void RaiseOnLeaveEvent()
        {
            if (Leave != null)
                Leave(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

        public void RaisePostBackEvent(string eventArgument)
        {
            RaiseOnLeaveEvent();
        }

        #endregion
    }
}

Download rdTextBox