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 et json [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 et json
    Bonjour,

    Le code suivant affiche un dijit.tree :

    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
     
     
          var rawdata = [
             {
                'label':'Titi',
                'children':[{'label':'Titi1'}]
             }
          ];
     
          var store = new dojo.data.ItemFileReadStore(
             {
                   data: {
                       label: 'label',
                       items: rawdata
                   }
             }
     
          );
     
          var treeModel = new dijit.tree.ForestStoreModel({
                   rootLabel: "TitiRoot",
                   childrenAttrs: ["children"],
                   store: store
               });
     
          var treeControl = new dijit.Tree({
                model: treeModel,
                autoExpand:true
               },
               "treeOne");
     
     
          conteneurPage.addChild(treeControl);
     
          // Start the table container. This initializes it and places
          // the child widgets in the correct place.
          conteneurPage.startup();
          conteneurPage.layout();
    En faisant la modification suivante, le dijit.tree ne s'affiche plus. Du moins, seul le noeud root "TitiRoot" s'affiche.

    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
     
    //tab est un tableau contenant les données à afficher dans l'arbre.
    //je le met au format json.
    var rawdata = dojo.toJson(tab);
     
          //D'ailleurs voici le jSon contenu dans rawdata :
          /*
          "
          [
             {
                "label":"Titi",
                "children":[{"label":"Titi1"}]
             }
          ]
          "
          */
    //Comme dans toute chaine on a des guillemets au début et à la fin.
     
          var store = new dojo.data.ItemFileReadStore(
             {
                   data: {
                       label: 'label',
                       items: rawdata
                   }
             }
     
          );
     
          var treeModel = new dijit.tree.ForestStoreModel({
                   rootLabel: "TitiRoot",
                   childrenAttrs: ["children"],
                   store: store
               });
     
          var treeControl = new dijit.Tree({
                model: treeModel,
                autoExpand:true
               },
               "treeOne");
     
     
          conteneurPage.addChild(treeControl);
     
          // Start the table container. This initializes it and places
          // the child widgets in the correct place.
          conteneurPage.startup();
          conteneurPage.layout();
    Je pense que le pb vient des guillemets contenue dans le json et qu'il faudrait avoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          [
             {
                "label":"Titi",
                "children":[{"label":"Titi1"}]
             }
          ]
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    "
          [
             {
                "label":"Titi",
                "children":[{"label":"Titi1"}]
             }
          ]
          "
    Pour le vérifier, dans ma variable contenant le json (en l'occurence rawdata), j'aurais aimer remplacer les séquences et par et mais je ne sais pas comment faire ??? Je pense qu'il faut jouer avec les regex que je ne maitrise pas bien.

    On est bien d'accord que je ne souhaite surtout pas enlever tous les guillemets : "Titi1" doit rester "Titi" par exemple. Donc seulement les guillemets de début et de fin (mais peut on le faire dans une chaine ???)

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Lorsque vous créez votre store, vous utilisez les quottes :

    Dans les autres cas, vous utiliser les guillemets.
    Utilisez les quottes partout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          var rawdata = [
             {
                'label':'Titi',
                'children':[{'label':'Titi1'}]
             }
          ];
    Mais bon, pas sûr que ce soit ça le problème.

  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
    Oui mais c'est dans le 1er code que je fait ça et ce code là fonctionne. C'est le 2ème qui pose problème.

    Mais bon j'ai quand-même modifié le 1er code et mis des quotes partout car il convient d'avoir du code homogène.

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Ce que je voulais dire c'est que le json peut ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    "
          [
             {
                'label':'Titi',
                'children':[{'label':'Titi1'}]
             }
          ]
          "

  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
    Si dans mon tout 1er code, je change ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var rawdata = [
             {
                'label':'Titi',
                'children':[{'label':'Titi1'}]
             }
          ];
    en ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var rawdata = "[
             {
                'label':'Titi',
                'children':[{'label':'Titi1'}]
             }
          ]";
    j'ai une erreur javascript.

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Citation Envoyé par vermine Voir le message
    Ce que je voulais dire c'est que le json peut ressembler à ça :

  7. #7
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    Bonjour,

    D'où provient votre "tab" ?
    A quoi ressemble-t'il avant la conversion en Json ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rawdata = dojo.toJson(tab);
    Votre "rawdata" initial est un tableau tout comme votre "tab" peut être n'y a t'il pas besoin de faire une conversion (?) ou alors la faire plus en amont si cela vient de script php ou java côté serveur.

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

Discussions similaires

  1. [Dojo] dijit.tree :comment savoir si les childs d'un item sont déja chargé (dojo 1.4)
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 15/03/2010, 13h49
  2. [Dojo] drag and drop avec dijit.tree
    Par laminfodev dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 29/01/2010, 13h06
  3. [Dojo] actualisée dijit tree
    Par laminfodev dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 25/01/2010, 17h18
  4. [Dojo] dijit.tree avec dijit.menu
    Par laminfodev dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 22/01/2010, 11h29
  5. [Dojo] dijit.Tree avec de longues lignes
    Par Eric Pasquier dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 10/11/2009, 16h49

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