2009-11-24 4 views
2

Je cherchais des boîtes de dialogue en cascade (multi-niveaux) dans DOJO Toolkit. Je comprends qu'une implémentation correcte de ceci sera disponible dans DOJO 1.4. (Dojo dialog nesting)comment implémenter des boîtes de dialogue en cascade dans DOJO Toolkit

Je me demandais si une fonctionnalité de base (pour gérer les zIndex) pouvait être facilement réalisée en sous-classant la classe existante dijit.Dialog (1.3). Si quelqu'un peut montrer un aperçu de base de la façon dont cela peut être fait, ce serait génial.

+0

Il existe une version bêta disponible à partir de Dojo 1.4.x avec des boîtes de dialogue en cascade. – opHASnoNAME

+0

J'avais essayé d'utiliser la bêta dans mon projet il y a quelques jours mais la version bêta (package global) semblait poser quelques problèmes en ce moment, j'ai donc décidé de la laisser pour le moment et y revenir plus tard. Je me demandais si l'implémentation de cette fonctionnalité par sous-classe serait un exercice intéressant en soi. –

Répondre

1

La façon dont Dojo 1.4 fait cela consiste à conserver une pile de toutes les boîtes de dialogue ouvertes dans un espace de noms global et à déplacer l'index z de la sous-couche de dialogue lors de l'ouverture de la boîte de dialogue suivante. Vous pouvez utiliser le référentiel de code situé au http://bugs.dojotoolkit.org/browser/dijit/trunk/Dialog.js pour voir les modifications effectuées pour que cela fonctionne.

+0

Thanx j'avais essayé de mettre cela dans mon installation 1.3. Mais il a soulevé des erreurs javascript pour un fichier html manquant (qui je suppose était le modèle pour Dialog class: templates/Dialog.html). Il n'est probablement pas si facile de placer un fichier de code source directement dans la distribution Shrink-safe de DOJO. À ce stade, j'ai abandonné et plus tard mis cette question sur Stack Overflow. –

+0

Oui, shrinksafe alignera les modèles pour enregistrer les demandes. Cela signifie qu'un template défini via templatePath deviendra inline dans templateString en utilisant shrinksafe. C'est pourquoi vous devez soit surcharger templateString, soit définir templateString comme vide et mettre templatePath: dojo.moduleUrl ("some.module", "/ templates/MyTemplate.html") dans votre sous-classe. – Joscha

Questions connexes