2008-12-30 21 views
1

J'ai donc rencontré un problème, apparemment la méthode get_events est seulement "incluse" avec la classe ExtenderControl.ASP.Net ScriptControl - Ajouter la méthode Javascript get_events: Possible?

Ce que je dois faire:

pouvoir appeler la méthode get_events Javascript utilisant un ScriptControl car l'utilisation d'un ExtenderControl n'est pas vraiment possible à ce stade.

J'espère qu'il y a un moyen facile d'avoir l'objet javascript de scriptControl hériter de quelque chose (si c'est même possible).

Répondre

1

Il s'avère que la méthode get_events est très simple à créer. Vous avez juste besoin d'un champ pour contenir un dictionnaire, quelques lignes de code, et quelque chose pour appeler l'événement si nécessaire:

getEvents: function() 
{ 
    if (this._events == null) 
    { 
     this._events = new Sys.EventHandlerList(); 
    } 

    return this._events; 
}, 

Et maintenant accès:

onItemSelected: function(args) 
{ 
    this.raiseEvent('userItemSelected', args); 
}, 

raiseEvent: function(eventName, eventArgs) 
{ 
    var handler = this.getEvents().getHandler(eventName); 
    if(handler) 
    { 
     handler(this._autoComplete, eventArgs); 
    } 

}, 

Fondamentalement événements est juste un dictionnaire qui contient le nom de l'événement et la référence à la méthode à appeler. Une fois que vous avez la méthode (handler), c'est juste une question d'appel.