Partager via


Sys.EventHandlerList, classe

Mise à jour : novembre 2007

Crée un dictionnaire des événements clients pour un composant, avec les noms d'événement comme clés et les gestionnaires associés comme valeurs.

Espace de noms : Sys

Hérite de : Aucun

var e = new Sys.EventHandlerList();

Constructeurs

Nom

Description

Sys.EventHandlerList, constructeur

Initialise une nouvelle instance de la classe EventHandlerList.

Membres

Nom

Description

Sys.EventHandlerList.addHandler, méthode

Joint un gestionnaire à un événement spécifié dans une instance de EventHandlerList et ajoute l'événement spécifié à la liste s'il n'y figure pas.

getHandler, méthode de Sys.EventHandlerList

Retourne une méthode unique qui peut être appelée afin d'appeler séquentiellement tous les gestionnaires pour l'événement spécifié.

Sys.EventHandlerList.removeHandler, méthode

Supprime un gestionnaire d'événements de l'événement spécifié dans une instance de EventHandlerList.

Notes

Utilisez la classe EventHandlerList pour gérer des événements clients dans les composants ASP.NET AJAX personnalisés. La classe EventHandlerList fournit un emplacement de référence central pour les événements et leurs gestionnaires dans un bloc de script, un composant ou un fichier de ressources de script.

Remarque :

Cette classe est utilisée uniquement lors du développement de composants clients. Elle sert à la gestion des événements uniquement dans le cadre du développement des composants et n'est pas utilisée pour lier des événements DOM.

Pour déclencher un événement, appelez la méthode getHandler avec le paramètre id défini sur l'identificateur de l'événement à déclencher. Vous appelez ensuite la méthode retournée par getHandler. Tous les gestionnaires associés à l'événement sont alors appelés dans l'ordre.

Dans une classe dérivée de Sys.Component, vous pouvez accéder à une instance d'exécution de EventHandlerList à l'aide de la propriété events de la classe de base Sys.Component. Pour plus d'informations, consultez Sys.Component.events, propriété.

Exemple

L'exemple suivant indique comment utiliser la classe EventHandlerList dans un contrôle ASP.NET AJAX personnalisé. Pour plus d'informations sur la création d'un contrôle personnalisé, consultez Création de contrôles clients AJAX personnalisés, qui inclut le contrôle complet servant de base à cet exemple.

// Register namespace.
Type.registerNamespace("Demo");

Demo.HoverButton = function(element) {

    Demo.HoverButton.initializeBase(this, [element]);

    // Create delegates in the Constructor.
    this._clickDelegate = null;
}

Demo.HoverButton.prototype = {

    // Bind and unbind to click event.
    add_click: function(handler) {
        this.get_events().addHandler('click', handler);
    },
    remove_click: function(handler) {
        this.get_events().removeHandler('click', handler);
    },

    initialize: function() {
        var element = this.get_element();

        // Bind handler to delegate.
        if (this._clickDelegate === null) {
            this._clickDelegate = Function.createDelegate(this, this._clickHandler);
        }
        Sys.UI.DomEvent.addHandler(element, 'click', this._clickDelegate);
        Demo.HoverButton.callBaseMethod(this, 'initialize');
    },
    _clickHandler: function(event) {
        var h = this.get_events().getHandler('click');
        if (h) h(this, Sys.EventArgs.Empty);
    },

    // Release resources before control is disposed.
    dispose: function() {
        var element = this.get_element();
        if (this._clickDelegate) {
            Sys.UI.DomEvent.removeHandler(element, 'click', this._clickDelegate);
            delete this._clickDelegate;
        }
        Demo.HoverButton.callBaseMethod(this, 'dispose');
    }
}

// Register the class.
Demo.HoverButton.registerClass('Demo.HoverButton', Sys.UI.Control);

// Notify the ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>EventHandlerList Example</title>
</head>
<body>
<form id="form1" runat="server">
    <div id="ResultDisplay"></div>

        <asp:ScriptManager runat="server" ID="ScriptManager01">
            <scripts>
               <asp:ScriptReference Path="HoverButton.js" />
            </scripts>
        </asp:ScriptManager>

        <script type="text/javascript">
            var app = Sys.Application;
            // Add the handler function to the pageLoad event.
            app.add_load(applicationLoadHandler);

            function applicationLoadHandler(sender, args) {
                $create(
                    Demo.HoverButton, 
                    {element: {style: {borderWidth: "2px"}}},
                    // Bind the start function to the click event.
                    {click: start},
                    null,
                    $get('Button1')
                    );
            }

            function start(sender, args) {
               alert("The start function handled the HoverButton click event.");
            }
        </script>

        <button type="button" id="Button1" value="HoverButton">
            HoverButton
        </button>
</form>
</body>
</html>

Voir aussi

Référence

new, opérateur

Autres ressources

Référence du langage