jQuery EasyUI menu arborescent - menu Arbre ajouter parent / nœuds enfants
Habituellement, il représente un nœud de l'arbre est dans tous les sens un noeud stocke une parentid. Il est également appelé modèle de liste d'adjacence. la charge directe des données dans l'arborescence des menus (Arbre) n'est pas autorisé. Mais nous pouvons avant arborescence du menu de chargement, le mettre dans un format de données standard arborescence du menu standard (Arbre). Arbre (Arbre) plug-in fournit l'option d'un «loadFilter» pour fonctionner, il peut obtenir cette fonctionnalité. Il offre la possibilité de modifier les données entrantes. Ce tutoriel vous montre comment utiliser la fonction de parent 'loadFilter' pour charger / nœud enfant au menu de l'arbre (Arbre).
/ Enfant données nœud parent
[ { "Id": 1, "parendId": 0, "name": "aliments"}, { "Id": 2, "parentId": 1, "name": "Fruits"}, { "Id": 3, "parentId": 1, "name": "Légumes"}, { "Id": 4, "parentId": 2, "name": "pomme"}, { "Id": 5, "parentId": 2, "name": "orange"}, { "Id": 6, "parentId": 3, "name": "tomate"}, { "Id": 7, "parentId": 3, "name": "carotte"}, { "Id": 8, "parentId": 3, "name": "chou"}, { "Id": 9, "parentId": 3, "name": "pomme de terre"}, { "Id": 10, "parentId": 3, "name": "laitue"} ]
Utilisez 'loadFilter' Créer l'arborescence des menus (Arbre)
$ ( '# Tt'). Tree ({ url: 'data / tree6_data.json', loadFilter: fonction (rangées) { retour convert (lignes); } });
Réalisation de conversion
convert de fonction (lignes) { fonction existe (lignes, ParentID) { for (var i = 0; i <rows.length; i ++) { if (lignes [i] .id == parentId) return true; } return false; } nœuds var = []; // Obtenir les nœuds de haut niveau for (var i = 0; i <rows.length; i ++) { var rang = rangées [i]; if (! existe (lignes, row.parentId)) { nodes.push ({ id: row.id, texte: row.name }); } } var Todo = []; for (var i = 0; i <nodes.length; i ++) { toDo.push (nœuds [i]); } tandis que (toDo.length) { var noeud = toDo.shift (); // le noeud parent // Obtenir les noeuds enfants for (var i = 0; i <rows.length; i ++) { var rang = rangées [i]; if (row.parentId == node.id) { var enfant = {id: row.id, texte: row.name}; if (node.children) { node.children.push (enfant); } Else { node.children = [enfant]; } toDo.push (enfant); } } } retour noeuds; }