Bonjour,

Je réalise actuellement un composant représentant une arborescence avec jsTree.
J'ai besoin des données suivantes :

  • le libellé du noeud ;
  • son identifiant ;
  • son libellé "complet" (de la forme "libellé noeud racine/libellé noeud 1/libellé noeud 2/...".

Si je n'ai aucun souci pour avoir les deux premiers, je n'arrive pas avoir le suivant (sans le recalculer).
J'utilise pour l'instant le format XML décrit dans la doc. Y a-t-il moyen en standard d'ajouter des données supplémentaires ?
(j'ai tenté le span caché dans le CDATA mais l'injection de code ne passe pas trop )

Code XML : 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
<root>
  <!-- Racine -->
  <item id="root1" state="closed">
    <content>
      <name><![CDATA[root1]]></name>
    </content>
  </item>
  <!-- root1/AA -->
  <item id="1000" parent_id="root1">
    <content>
      <name><![CDATA[AA]]></name>
    </content>
  </item>
  <!-- root1/AB -->
  <item id="1001" parent_id="root1">
    <content>
      <name><![CDATA[AB]]></name>
    </content>
  </item>
</root>

Et le script d'initialisation du composant :
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
<script type="text/javascript"> 
  // Déclencheur au clic sur un noeud.
  $(function () {     
    $("#esstree").bind("select_node.jstree", function (e, data) {
      var node = data.rslt.obj;
      // Ouverture des parents.
      node.parents(".jstree-closed").each(function () {
        data.inst.open_node(this, false, true);
      }); 
      // Toggle du noeud courant.
      data.inst.toggle_node(node);
      $("#selectedess").html(node.attr("id"));
    });
 
    // Initialisation du plugin.
    $("#esstree").jstree({ 
      plugins : [ "xml_data", "ui", "themes" ],
      xml_data : {
        ajax : {
          url : "./data.xml",
        }
      },
      ui : {
          select_multiple_modifier : false,
          initially_select : [ "1001" ],
      },
      themes : {
        icons: false,
        dots : true,
      }
    });
  });
</script>
Merci !

Alban