2013-10-22 13 views
10

So che Button.command è l'ID tema per i pulsanti normali e posso impostare le proprietà per esso. E so che eventHandlers non ha un ID tema per impostazione predefinita. Quindi, per impostare le proprietà di un EventHandler centrale, ho aggiunto storicamente quello che ho avuto questo nel mio tema:Proprietà di impostazione tema per child of control

<control> 
     <name>Button.EventHandler</name> 
     <property mode="override"> 
      <name>onStart</name> 
      <value>loading();</value> 
     </property> 
     <property mode="override"> 
      <name>onError</name> 
      <value>stoploading();</value> 
     </property> 
     <property mode="override"> 
      <name>onComplete</name> 
      <value>stoploading();</value> 
     </property> 
    </control> 

Ma ho quindi bisogno di aggiungere il themeId Button.EventHandler ad ogni EventHandler.

C'è un modo per impostare le proprietà in un tema per i bambini, quindi impostare le proprietà su tutti gli eventHandler che sono figli dei controlli Button.Command?

risposta

0

Non posso aiutarti a risolvere il tuo problema tema, ma forse posso darti una soluzione al problema generale.

Presumo che ciò che si tenta di ottenere è di allegare un bel caricatore a tutti gli eventi di aggiornamento parziale. Questo può essere fatto su un livello più basso, utilizzando dojo.subscribe API: codice http://dojotoolkit.org/reference-guide/1.6/dojo/subscribe.html

Esempio:

// we need to activate io events 
dojo.config.ioPublish = true 
dojo.subscribe("/dojo/io/send", function(/*dojo.Deferred*/dfd){ 
    loading(); 
}); 
dojo.subscribe("/dojo/io/stop", function(){ 
    stoploading(); 
}); 

Questo codice deve essere eseguito all'avvio dell'applicazione (evento onClientLoad farà bene)