J'ai réussi à créer un Ext.tree.TreePanel qui charge dynamiquement des nœuds enfants, mais j'ai du mal à vider l'arborescence et à la charger avec de nouvelles données. Quelqu'un peut-il m'aider avec le code pour le faire?Comment effacer un arbre dans ExtJs?
Répondre
J'ai enfin trouvé une réponse dans leurs forums. Pour les personnes intéressées, il est ici:
if (tree)
{
var delNode;
while (delNode = tree.root.childNodes[0])
tree.root.removeChild(delNode);
}
if (tree) { var delNode; while (delNode = tree.root.childNodes[0]) tree.root.removeChild(delNode); }
Je ne sais pas Ext, mais je devine qu'ils ont l'abstraction DOM qui pourrait rendre cela plus facile. Un équivalent prototype serait quelque chose comme:
tree.root.immediateDescendants().invoke('remove'); // or
tree.root.select('> *').invoke('remove');
À moins tree.root
fait référence à un objet de collection plutôt que le nœud DOM racine de l'arbre, mais emprunte les noms de méthode API DOM? Cela semble vraiment improbable, surtout pour une bibliothèque JS moderne.
Dans mon cas, mon arbre Ext a un nœud racine caché de type AsyncTreeNode. Si je veux effacer l'arbre et repeupler à partir du serveur, il est assez simple:
tree.getRootNode().reload();
Depuis le merveilleux blog de Saki un gourou ExtJS.
while (node.firstChild) {
node.removeChild(node.firstChild);
}
http://blog.extjs.eu/know-how/how-to-remove-all-children-of-a-tree-node/
je suis tombé sur un problème similaire et la solution que je suis venu avec était de « tag » le noeud a avoir pas chargé quand il a été effondré forçant ainsi un reload quand il a été augmenté de nouveau .
listeners: {
collapsenode: function(node){
node.loaded = false;
},
Ext JS 4:
si vous voulez recharger les données du panneau de l'arborescence, vous devez recharger le magasin d'arbre:
getCmp('treeId').getStore().load();
où ArbreID est l'identifiant du arbre. Si vous avez un identifiant de magasin, vous pouvez directement utiliser load() sur l'identifiant du magasin.
pour supprimer tous les nœuds enfants:
getCmp('treeId').getRootNode().removeAll();
Toutefois, la suppression des nœuds enfants n'est pas nécessaire pour recharger les nœuds de l'arbre de son magasin.
Vous pouvez simplement utiliser node.removeAll()
pour supprimer tous les nœuds enfants de ce nœud.
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.NodeInterface-method-removeAll
- 1. Comment créer un arbre binaire
- 2. Comment effacer un objet NSSound
- 3. Qu'est-ce qu'une arborescence Splay, un arbre rouge-noir, un arbre AVL, un arbre B et un arbre-T?
- 4. ExtJS et Rails: Comment transmettre des données à ExtJS
- 5. actualiser une page dans extjs
- 6. Comment corriger ou effacer un objet Javascript?
- 7. Comment récupérer le chemin d'un nœud dans un arbre - efficace (lié au poste 'analyser une table plate dans un arbre?)
- 8. Comment implémenter un arbre d'espaces d'états?
- 9. WPF Comment effacer un DrawingVisual avec RemoveVisualChild
- 10. Comment ajouter un bouton Effacer à UITextField?
- 11. Comment insérer/supprimer/mettre à jour dans un arbre ordonné
- 12. Comment obtenir le dernier enfant dans un arbre django-mptt?
- 13. Comment créer un arbre de recherche binaire dans Clojure?
- 14. Marcher dans un arbre XML en C#
- 15. Java: traversèrent Arbre à arbre
- 16. Comment définir, effacer et basculer un seul bit dans JavaScript?
- 17. Comment effacer un bouton radio sélectionné dans WatiN?
- 18. Comment effacer une zone dans un objet BitmapData?
- 19. Comment effacer un attribut d'objet utilisateur dans Active Directory?
- 20. Droite Threading un arbre binaire
- 21. extjs charger l'image dans TreePanel
- 22. Comment effacer la console dans C# .net?
- 23. Comment effacer une liste interne dans Scheme?
- 24. Comment effacer les changements dans LinqToSql?
- 25. arbre linéaire dans Flex
- 26. Comment effacer l'écran dans la console IronPython?
- 27. Comment effacer le contrôle datepicker dans silverlight?
- 28. Construire un arbre en Java
- 29. Ajouter un bouton à la grille dans ExtJs
- 30. ExtJs checkboxselectionmodel