comment faire une fenêtre modale en ext 4?
Comme une fenêtre dans microsoft OS (xp,vista, 7, etc)...
Si une fenêtre principale de créer une fenêtre modale, l'utilisateur ne peut pas accéder à la fenêtre principale,
(y compris les proches et accéder à la barre d'outils, etc).
Je veux faire un similaire avec extjs. C'est mon modal exemple :
Ext.create("Ext.Window", {
title: 'aa',
width: 200,
height: 150,
html: 'a',
tbar: [{
text: 'aa',
handler: function() {
Ext.create("Ext.Window", {
title: 'aa',
width: 150,
closable: false,
height: 100,
html: 'b',
ownerCt: this,
modal: true
}).show();
}
}]
}).show();
Le problème est, il suffit de désactiver la fenêtre principale du corps, l'utilisateur peut toujours accéder à la barre d'outils principale, également pour la refermer.
Ma question est comment faire le plein modal ? ou si elle ne peut pas être fait, comment faire pour désactiver la fenêtre principale, si la fenêtre modale s'affiche, j'ai utiliser auditeur montrer modaux gagner, mais le problème est que je ne peux pas accéder à la fenêtre principale à partir de cette écoute.
Edit :
C'est mon code pour l'instant :
Ext.create("Ext.Window", {
title: 'aa',
width: 200,
height: 150,
html: 'a',
maskOnDisable: false,
tbar: [{
text: 'aa',
handler: function(a) {
var parent = a.up("window");
parent.disable();
Ext.create("Ext.Window", {
title: 'aa',
width: 150,
height: 100,
html: 'b',
listeners: {
scope: this,
"close": function() {
parent.enable();
},
/*
"blur" : function(){
this.focus()
}
*/
}
}).show();
}
}]
}).show();
Bien que ce n'est pas modal concept, mais il semble comme ce que je veux maintenant, j'ai un nouveau problème, maskOnDisable
n'est pas fonctionne et j'ai besoin d'un événement comme blur
, de sorte que si l'utilisateur cliquez sur la fenêtre parent, il le focus à la fenêtre popup.
(si je poste en tant que nouvelle question ?)
merci pour votre aide.. voir mon edit.. j'ai besoin de peu d'aide encore une fois..
OriginalL'auteur Egy Mohammad Erdin | 2011-05-19
Vous devez vous connecter pour publier un commentaire.
Nouvelle Réponse:
Avez-vous essayé de
disable()
etenable()
la fenêtre parent de manière appropriée? Je pense que cela devrait vous aider dans l'arrêt de l'accès à la première fenêtre, et en même temps de permettre à vos utilisateurs d'accéder au menu principal de l'application et de l'écran. Voici ce que j'ai essayé:Lorsque vous désactivez la fenêtre, les composants à l'intérieur de la fenêtre sont désactivés et vous ne serez pas en mesure de même le déplacement de la fenêtre. Mais dans le même temps, vous aurez accès à d'autres composants comme votre menu principal, les grilles sur la page. Vous aurez également accès à la nouvelle fenêtre. Maintenant, pour le faire se comporter comme un modal, vous devez activer la fenêtre parent lorsque vous fermez la fenêtre enfant. Vous pouvez faire usage de la
enable()
méthode.Je ne vois pas d'autre moyen d'obtenir ce que vous cherchez.
Vieille Réponse:
Je me demande pourquoi vous avez défini le
ownerCt
propriété se référant à la fenêtre elle-même! Qui est votre principal problème. Par la suppression de la propriété vous permettra d'atteindre ce que vous cherchez. Voici le code mis à jour:Y avait-il une raison quelconque dans l'établissement de la
ownerCt
propriété?ownerCt
préciser qui est le parent.. comme "option de dossier" dans "explorer" (Fenêtre), l'utilisateur ne peut pas accéder à l'explorateur de jusqu'à l'option de dossier est fermé..mais l'utilisateur peut toujours ouvrir un nouvel explorateur ou une autre application...
OriginalL'auteur Abdel Raoof
Ces jours, vous pouvez définir modal: true
Réponse tardive: Oui 🙂
oui, modal config de la propriété est de chemin à faire 🙂 Docu: docs.sencha.com/extjs/4.2.3/#!/api/Ext.de la fenêtre.Fenêtre-cfg-modale
OriginalL'auteur emolaus