Es ist mir gelungen, eine Ext.tree.TreePanel zu erstellen, die Kindknoten dynamisch lädt, aber ich habe Schwierigkeiten, die Baumstruktur zu löschen und sie mit neuen Daten zu laden. Kann mir jemand mit dem Code helfen?Wie löscht man einen Baum in ExtJs?
Antwort
Ich fand endlich eine Antwort in ihren Foren. Für alle Interessierten ist es hier:
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); }
ich nicht Ext weiß, aber ich vermute, dass sie DOM Abstraktion, die das leichter machen könnte. Ein Äquivalent in Prototype wäre so etwas wie sein:
tree.root.immediateDescendants().invoke('remove'); // or
tree.root.select('> *').invoke('remove');
Sofern tree.root
bezieht sich auf ein Sammelobjekt, anstatt die Wurzel DOM-Knoten des Baumes, sondern leiht DOM API Methodennamen? Das erscheint besonders unwahrscheinlich für eine moderne JS-Bibliothek.
In meinem Fall hat meine Ext-Struktur einen versteckten Wurzelknoten vom Typ AsyncTreeNode. Wenn ich den Baum und repopulate vom Server gelöscht werden soll, dann ist es ziemlich einfach:
tree.getRootNode().reload();
Vom wunderbaren Blog von Saki ein ExtJS Guru.
while (node.firstChild) {
node.removeChild(node.firstChild);
}
http://blog.extjs.eu/know-how/how-to-remove-all-children-of-a-tree-node/
I lief in ein ähnliches Problem und die Lösung kam ich mit war der Knoten zu ‚Tag‘ nicht geladen ist zu haben, wenn es damit zusammengebrochen war ein Neuladen zwingen, wenn es wurde wieder ausgebaut .
listeners: {
collapsenode: function(node){
node.loaded = false;
},
In Ext JS 4:
wenn Sie die Daten des Baumes Platte neu zu laden möchten, können Sie den Baum Speicher neu zu laden müssen:
getCmp('treeId').getStore().load();
wo treeID die ID der ist Baum. Wenn Sie eine Geschäfts-ID haben, können Sie direkt load() für die Geschäfts-ID verwenden.
alle untergeordneten Knoten zu entfernen:
getCmp('treeId').getRootNode().removeAll();
jedoch Knoten Kind Entfernen zum Nachladen des Baumknoten aus seinem Speicher nicht erforderlich ist.
können Sie einfach node.removeAll()
verwenden, um alle untergeordneten Knoten von diesem Knoten zu entfernen.
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.NodeInterface-method-removeAll
- 1. ExtJS Baum dynamisch
- 2. Wie erstellt man einen Baum in C++?
- 3. Wie beschneidet man einen Baum in R?
- 4. Wie man einen Baum in Haskell schmückt
- 5. Bauen ExtJS Baum auf Fly
- 6. Gulp: Wie man einen Ordner löscht?
- 7. Wie man einen boost :: shared_ptr absichtlich löscht?
- 8. AngularJS - Wie macht man einen ziehbaren Baum?
- 9. Wie erstellt man einen Skill-Baum?
- 10. wie man Szene löscht?
- 11. ExtJS Grid Zeile löscht - Erste Selected Row
- 12. wie man Textfeld löscht?
- 13. Wie man einen multi Baum in vb.net durchquert
- 14. Wie erstellt man einen Enum-Style-Baum in Java?
- 15. Wie man einen Baum in der SQL-Datenbank speichert
- 16. Wie man einen B-Baum in Java visuell anzeigt?
- 17. Einsetzen in einen Baum
- 18. Wie man Replikationsschlitz in Postgres löscht 9.4
- 19. Einen Baum verfolgen?
- 20. Android: Wie löscht man einen Ordner beginnt mit Punkt
- 21. Wie man einen ExtJS-Proxy unterklassifiziert - mit MVC?
- 22. Wie löscht man Zeichen in einer Zeichenkette?
- 23. Wie man $ Fehler in der PowerShell löscht?
- 24. Wie bekommt man Abhängigkeiten Baum?
- 25. Wie man Baum zu threadartigem binärem Baum umwandelt
- 26. Wie transformiert man einen Baum mit Scrap Your Boilerplate?
- 27. Wie man Objekt durchläuft und einen Baum erzeugt Objekt
- 28. Wie man einen Baum von Ja/Nein-Entscheidungen brutal macht?
- 29. Wie tief einen Baum zu kopieren?
- 30. Extjs threepanel: wie man einen Knoten auf Blattknoten fallen lässt