Domanda

Quindi ho incontrato un problema, apparentemente il metodo get_events è solo " incluso " con la classe ExtenderControl.

Cosa devo fare:

Essere in grado di chiamare il metodo Javascript get_events utilizzando uno ScriptControl poiché l'utilizzo di un ExtenderControl non è realmente possibile a questo punto.

Spero che ci sia un modo semplice per far sì che l'oggetto javascript dello scriptControl erediti da qualcosa (se è persino possibile).

È stato utile?

Soluzione

Si scopre che il metodo get_events è davvero semplice da creare. Hai solo bisogno di un campo per contenere un dizionario, un paio di righe di codice e qualcosa per chiamare l'evento se necessario:

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

    return this._events;
},

E ora per l'accesso:

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

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

},

Fondamentalmente eventi è solo un dizionario che contiene il nome dell'evento e il riferimento al metodo da chiamare. Una volta che hai il metodo (gestore), è solo una questione di chiamarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top