ASP.Net ScriptControl - Aggiungi il metodo get_events di Javascript: Possibile?
-
03-07-2019 - |
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).
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.