2010-04-06 6 views
2

J'ai deux fenêtres. Événement appelé dans une fenêtre, mais gestionnaire (écouteur) doit être dans l'autre fenêtre. Cela peut-il être fait? Si oui, comment?Evénements dans ExtJs

Répondre

7

Comment les fenêtres sont créées, est la deuxième fenêtre qui déclenche l'événement une fenêtre enfant créée par la première fenêtre (une avec l'écouteur)?

Voulez-vous déclencher un événement personnalisé ou utiliser un événement extjs?

Vous pouvez ajouter un événement personnalisé de différentes façons ex

var win = new xxxWindow(); 
win.addEvents('myevent'); 

Ou

Ext.extend(xxxWindow, Ext.Window, { 
    initComponent: function(){ 
     xxxWindow.superclass.initComponent.apply(this, arguments); 
     this.addEvents('myevent'); 
    } 
}); 

Ensuite, dans votre première fenêtre (une avec l'auditeur et le parent de la deuxième fenêtre) après la création de la deuxième fenêtre

showSecondWindow: function(){ 
    var win = new xxxWindow(); 
    win.on('myevent', this.myEventHandler, this); 
}, 

myEventHandler: function(arg1, arg2){ 
} 

Pour déclencher l'événement personnalisé à partir de la deuxième fenêtre

fireMyEvent: function(arg1, arg2){ 
    this.fireEvent('myevent', arg1, arg2); 
} 

Espérons que cela résout votre problème.

+1

Les événements constituent un excellent moyen de communication entre les composants. Bonne réponse. –

+0

Merci. Je n'ai trouvé aucun exemple d'événement dans les documents ExtJS-3. – Keyo