Je rends un arbre en utilisant un tableau Jason que je reçois d'une page jsp. Ainsi, l'arbre a un nœud racine et 3 nœuds et chaque nœud a plus de 5 enfants et certains des enfants ont le même identifiant et le même texte. Il rend correctement et aucun problème à l'affichage.ExtJS Tree same parentNode
J'essaie de faire en sorte que l'utilisateur sélectionne les nœuds enfants d'un seul type (l'un des trois nœuds). Si l'utilisateur sélectionne un nœud qui n'est pas le frère d'un nœud déjà existant, il suffit de désactiver les nœuds déjà vérifiés. Cela semble assez simple et je l'ai codé. J'ai fondamentalement comparé les nœuds parents (node.parentNode.id) du nœud vérifié avec les nœuds déjà vérifiés (tree.getCheckedNodes())
le problème est quand je sélectionne des nœuds enfants qui ont le même id et le même texte ma logique échoue et ils disent qu'ils ont même parentNode.id même s'ils ont différent parentNode.id. Le panneau d'arbre vérifie-t-il les éléments en double et les affecte-t-il au même parent lors du chargement? Qu'est-ce qui se passe ici et comment résoudre ce problème? Je vous remercie.
Ext.onReady(function(){
var tree = new Ext.tree.TreePanel({
id: 'deficiencyTree',
renderTo: 'MyTable',
title: 'Deficiencies',
height: 'auto',
width: 525,
useArrows: true,
autoScroll: true,
animate: true,
enableDD: true,
containerScroll: true,
rootVisible: false,
frame: false,
root:{nodeType: 'async'},
dataUrl: 'jsonFile.jsp',
listeners: {
'checkchange': function (node, checked) {
if (checked) {
selNodes = tree.getChecked();
alert(selNodes);
Ext.each(selNodes, function (nodes) {
alert("id values for node and nodes "+node.parentNode.id+" "+nodes.parentNode.id);
if (nodes.parentNode.id != node.parentNode.id)
{
nodes.getUI().toggleCheck();
}
});
}
list.length = 0;
iii = 0;
selNodess = tree.getChecked();
Ext.each(selNodess, function (nodes) {
list[iii] = nodes.id;
iii++;
});
}
}
});
tree.getRootNode().expand(false);
});
Oui, j'ai besoin de cet attribut ID plus tard pour enregistrer mes sélections dans la base de données. J'ai donc essayé de mettre un nouvel attribut nommé ID2, le long de l'ID et du texte pour chaque nœud, mais quand j'ai essayé d'y accéder (node.ID2 comme node.id, node.text), il est dit undefined. une idée de comment accéder au nouvel attribut? Merci. –