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 :

1.6.1 dijit.tree Sélectionner un noeud [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut 1.6.1 dijit.tree Sélectionner un noeud
    Bonjour,

    je cherche comment sélectionner un noeud.


    J'ai essayé tour à tour des instructions que j'ai lu sur le web ; à savoir les suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    noeud.selected = true; noeud.focused = true;
     
    arbre.set("path", "Titi1/Titi11/Titi111");
     
    arbre.set("path", ["Titi1", "Titi11", "Titi111"]);
     
    arbre.focusNode(noeud);
    Mais elles n'ont aucun effet.


    En vous remerciant de m'aider.

  2. #2
    Membre très actif

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Par défaut
    il faudrait un plus de code et les données;
    sinon, le principe est bon et doit fonctionner.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Ok, j'ai crée un code tout simple où je tente de sélectionner un noeud.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <html>
     
    <head>
    <link rel="stylesheet" type="text/css" href="scripts/dojo-release-1.6.1/dijit/themes/claro/claro.css"> </link>
    <link rel="stylesheet" type="text/css" href="scripts/dojo-release-1.6.1/dijit/themes/claro/tree.css"> </link>
    <script type="text/javascript" src="scripts/dojo-release-1.6.1/dojo/dojo.js"> </script>
     
    <script type="text/javascript">
     
       function Afficher()
       {
          dojo.require("dijit.dijit");
     
          dojo.require("dojo.data.ItemFileReadStore");
          dojo.require("dijit.tree.ForestStoreModel");
          dojo.require("dijit.Tree");
     
          var node = dojo.byId('idConteneur');
     
          var rawdata = [
             {
                'label':'Titi',
                'children':[{'label':'Titi1'}]
             }
          ];
     
          var store = new dojo.data.ItemFileReadStore(
             {
                   data: {
                       label: 'label',
                       items: rawdata
                   }
             }
     
          );
     
          var treeModel = new dijit.tree.ForestStoreModel({
                   //rootId: "root",
                   rootLabel: 'TitiRoot',
                   childrenAttrs: ['children'],
                   store: store
               });
     
          var treeControl = new dijit.Tree({
                model: treeModel,
                autoExpand:true
               });
     
     
          node.appendChild(treeControl.domNode);
     
          //Je récupère les children de "TitiRoot".
          //J'ai remarqué que getChildren() ne renvoi que les enfants directs
          //alors que getDescendants() renvoi tous les enfants.
          var noeuds = treeControl.rootNode.getDescendants();
     
          var noeud = noeuds[1];//<= Je souhaite sélectionner le treenode "Titi".
     
          //Pour sélectionner un noeud, j'ai essayé chacune des 4 instructions ci-dessous.
          //Et aucune ne fonctionne.
          treeControl.focusNode(noeud);
          //noeud.selected = true; noeud.focused = true;
          //treeControl.set("path", "TitiRoot/Titi/Titi1");
          //treeControl.set("path", ["TitiRoot", "Titi", "Titi1"]);
       }
     
    </script>
     
    </head>
     
     
    <body class='claro'>
     
    <div id="idTester">
       <button type="button" onclick="Afficher()"> Afficher arbre </button>
    </div>
     
    <div id="idConteneur">
    </div>
     
    </body>
     
    </html>

  4. #4
    Membre très actif

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Par défaut
    j'ai un problème avec l'éditeur. je n'arrive pas à fait un copier/coller ...

    Pour que ça fonctionne, il faut :
    - ajouter 1 ligne entre la ligne 30 et 31 : identifier :'label'

    - retirer le commentaire à ligne 38 et mettre TitiRoot au lieu de root

    - mettre en commentaire les lignes 55,57,61

    - retirer le commentaire ligne 64

    raison : on fait la recherche sur les id et non sur les labels. Donc, on indique que les label est un identificateur (la ligne que l'on ajoute) et on en donne un pour la racine qui est le même que le label.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Oui oui en fait je m'en suis rendu compte qu'il fallait taper sur les id.

    Je trouve étonnant que le label ne soit pas un id. A un même niveau d'arborescence, on peut donc avoir plusieurs noeuds avec le même label mais avec des id différents.

    Et donc, à l'affichage, on peut avoir des noeuds en double.

    Enfin bref. Merci.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Et pour info, j'avais besoin de pouvoir sélectionner un noeud sans connaître son path ; en disposant uniquement de l'objet node.
    En fait, à partir de l'objet node, on peut se débrouiller pour récupérer le path du node.

    Voilà comment, je m'y suis pris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //On suppose que node et treeControl sont des variables déjà connues.
     
    var pathNode = getTreeNodePath(node);
    treeControl.set('path', pathNode);
     
    function getTreeNodePath(node)
    {
       var path = new Array;
       var objPath = node.getTreePath();
     
       path[0] = objPath[0].id;//Le 1er id est une chaine.
     
       for(var i=1; i < objPath.length; i++)
         //Les id suivants sont des tableaux de une chaine. Mystère ?
          path[i] = objPath[i].id[0];
     
       return path;
    }

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

Discussions similaires

  1. [Dojo] dijit.tree étendre tous les noeuds
    Par Ho(c)ine. dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 17/06/2011, 14h02
  2. [Xpath] Sélectionner les noeuds parents en fonctions des enfents
    Par xrcr9709 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/04/2008, 18h12
  3. [XPATH] Sélectionner un noeud
    Par yoyo44 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 20/12/2007, 18h57
  4. JTree : Sélectionner les noeuds enfants
    Par Lebas dans le forum Composants
    Réponses: 4
    Dernier message: 26/01/2007, 15h32
  5. Réponses: 6
    Dernier message: 06/03/2006, 13h38

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