我設法創建了一個動態加載子節點的Ext.tree.TreePanel,但是我很難清除樹並加載新數據。有人可以幫我用代碼來做到這一點嗎?如何清除ExtJs中的樹?
6
A
回答
1
我終於在論壇上找到了答案。對於任何有興趣它是在這裏:
if (tree)
{
var delNode;
while (delNode = tree.root.childNodes[0])
tree.root.removeChild(delNode);
}
-1
if (tree) { var delNode; while (delNode = tree.root.childNodes[0]) tree.root.removeChild(delNode); }
我不知道分機,但我猜測他們有DOM抽象可能簡化這個過程。在原型的等效會是這樣的:
tree.root.immediateDescendants().invoke('remove'); // or
tree.root.select('> *').invoke('remove');
除非tree.root
是指一個集合對象,而不是樹的根DOM節點,但借款DOM API方法的名字呢?這似乎不太可能,特別是對於現代JS庫。
3
在我的情況下,我的Ext樹有一個類型爲AsyncTreeNode的隱藏根節點。如果我想清除樹並從服務器重新填充,這很簡單:
tree.getRootNode().reload();
6
從Saki一個ExtJS專家的精彩博客。
while (node.firstChild) {
node.removeChild(node.firstChild);
}
http://blog.extjs.eu/know-how/how-to-remove-all-children-of-a-tree-node/
0
我遇到了類似的問題,我想出了一個解決辦法是「標籤」的節點,當它被倒塌從而迫使一重裝具有不加載,當它再次擴大。
listeners: {
collapsenode: function(node){
node.loaded = false;
},
3
在Ext JS的4:
如果要重新加載樹面板中的數據,您需要重新加載樹店:
getCmp('treeId').getStore().load();
其中treeId是的標識樹。如果您有商店ID,則可以直接在商店ID上使用load()。
刪除所有子節點:
getCmp('treeId').getRootNode().removeAll();
然而,移除子節點沒有必要從它的店重裝樹節點。
1
您可以簡單地使用node.removeAll()
從該節點中刪除所有子節點。
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.NodeInterface-method-removeAll
相關問題
- 1. 如何清除Extjs中的網格
- 2. 清除extjs中的舊工具提示
- 3. 清除樹視圖
- 4. 如何擺脫extjs樹中的圖標
- 5. 我們如何從ExtJS的Grid中清除所有項目?
- 6. 如何清除ExtJS中的狀態欄文本?
- 7. 如何阻止ExtJS清除網格中的組合框?
- 8. 如何在Extjs中完全清除圖表?
- 9. 如何在Extjs中創建樹
- 10. 在ExtJS的樹
- 11. 清除樹視圖崩潰
- 12. Emacs:清除撤消樹
- 13. 清除二叉搜索樹
- 14. 如何把X內部文本框以清除在ExtJS的
- 15. ExtJS的澄清
- 16. 如何清空C中的二叉樹中的子樹?
- 17. 如何用EXTJS構建下面的樹?
- 18. 實施ExtJS的樹
- 19. 在ExtJS dataview單選模式下如何清除項目選擇
- 20. 如何清除
- 21. 如何清除
- 22. 如何在ExtJS中顯示TreeGrid的樹節點中的文本
- 23. 如何清除recyclerView清單?
- 24. 如何刪除Extjs-6中的Extjs試用版圖標?
- 25. 以前的數據未在EXTJS的散點圖中清除4
- 26. Java Arraylist清除:清除()如何工作
- 27. 如何清除JTable中
- 28. 如何刪除B樹的子樹
- 29. 如何清除/清除VxWorks中的消息隊列緩衝區?
- 30. 如何使ExtJS拖放樹只能複製 - 不從顯示中刪除項目?