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.