IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Recuperer un widget (dojo version 1.3.2) [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Points : 96
    Points
    96
    Par défaut Recuperer un widget (dojo version 1.3.2)
    Salut a tous ,

    Je cherche une autre methode pour recuperer un widget dans un document, a part son id ou sa node
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     var widget = dijit.getEnclosingWidget(dojo.byId("idWidget"));
    //ou
    var widget = dijit.byId("idWidget");
    Est ce qu'il ya une autre façon de le faire ?
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    C'est un peu flou... Où veux tu en venir ? Que veux tu faire, et dans quel contexte ?

    ERE

  3. #3
    Membre régulier Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Salut,

    C'est un peu flou... Où veux tu en venir ? Que veux tu faire, et dans quel contexte ?

    ERE
    Salut,

    En fait, se que je veux faire c'est modifié id du widget.
    Je cree des onglets avec un idGenerer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    idGenerer = dijit.getUniqueId("new");
     
       var cp = new dijit.layout.ContentPane({ 
            id : "onglet-"+idGenerer,
            title: 'Nouveau article', 
            closable :true,
            preload:true,
            href:"...."
      }); 
     tc.addChild(cp)
     tc.startup();
    alors, quand je ferai enregistrer , j'ai besoin de modifié id du widget qui a cree avec un idGenerer par id de l'article enregistré.
    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var widget = dijit.byId("onglet-"+idGenerer);
    widget.id = "onglet-"+idNewArticle;
    et ça ca marché pas,alors j'ai modifié id de la node
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var nodeWidget = dojo.byId("onglet-"+idGenerer);
    nodeWidget.id = "onglet-"+idNewArticle;
    et ici je suis obligé de passer par la node pour recuperer le widget
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var monOnglet = dijit.getEnclosingWidget(dojo.byId("onglet-"+idNewArticle));
    Est ce qu'il ya une autre methode pour modifié id du widget par un autre id sans passé par la node ?
    Merci

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Il n'est pas prévue de moyen simple de changer un id d'un widget.
    A toi de le gérer manuellement

    Techniquement il existre un registre (Registry) qui note tous les widget créés. C'est ce registre qui dispose de la fonction dijit.byId.

    Tu dois donc modifier ton id de widget et AUSSI modifier les données associées du registre. Tu accèdes au registre via l'objet dijit.registry.

    Il te faudra supprimer ton widget du regitre et inscrire le nouveau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var widget = ....
    var oldID = widget.id;
    //changer l'id du widget, etc...
    //puis modification du registre
    dijit.registry.remove(oldId);
    dijit.registry.add(widget);
    ERE

  5. #5
    Membre régulier Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Points : 96
    Points
    96
    Par défaut
    Salut;
    Merci pour votre réponse;
    J'ai essayé cette solution, mais malheureusement toujours le meme probleme

  6. #6
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    As tu essayé sur une page simple, avec un composant simple, par exemple avec un bouton ?
    Cela doit fonctionner. Réessaie ainsi et si cela ne fonctionne pas poste ton code.

    ERE

  7. #7
    Membre régulier Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Re,

    As tu essayé sur une page simple, avec un composant simple, par exemple avec un bouton ?
    Cela doit fonctionner. Réessaie ainsi et si cela ne fonctionne pas poste ton code.

    ERE
    ça marche bien dans une page simple sur button, mais dans mon projet ca marché pas sur un onglet d'un tabContainer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       // suppresion de l'id du widget ds le registry                
                        dijit.registry.remove("onglet-"+idGenerer);
                        monOnglet.attr("id","onglet-"+newId);
                        // ajout du nouvel id ds le registry
                        dijit.registry.add(monOnglet);
    dans firebug je vois bien qu'il modifie id mais quand je passe a un autre onglet ca marche pas.
    En fait, je vais laisser la solution passant par node pour le moment.
    Merci bien.

  8. #8
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,
    Oui, le souci c'est que l'id est certainement utilisé à d'autres endroits dans le composant (par exemple comme attribut parent des pages du tabcontainer. Donc dans ton cas il y a un peu plus de boulot... et cela reste quand même assez hasardeux car même si tu fais correctement les modifications dans tout le code, tu n'es pas à l'abris d'un ajout dans une prochaine version de dojo... et là patatra ton application ne fonctionnerait plus

    ERE

  9. #9
    Membre régulier Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Points : 96
    Points
    96
    Par défaut
    Merci pour votre réponse
    je vais garder le passage avec node alors .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dojo] dnd avec un widget dojo
    Par laminfodev dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 08/01/2010, 14h18
  2. [Dojo] Comment fermer un widget dojo en javascript
    Par janyv dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 03/12/2009, 19h25
  3. [Dojo] Dojo version 1.4
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 07/07/2009, 10h25
  4. Créer des widgets Dojo depuis ZF
    Par Yogui dans le forum Zend_Form
    Réponses: 2
    Dernier message: 10/07/2008, 11h31
  5. Réponses: 18
    Dernier message: 12/12/2007, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo