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 |
---|---|
Initialise une nouvelle instance de la classe EventHandlerList. |
Membres
Nom |
Description |
---|---|
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. |
|
Retourne une méthode unique qui peut être appelée afin d'appeler séquentiellement tous les gestionnaires pour l'événement spécifié. |
|
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>