我設法創建了一個動態加載子節點的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. 在ExtJS的樹
- 4. 清除二叉搜索樹
- 5. ExtJS的澄清
- 6. 如何清空C中的二叉樹中的子樹?
- 7. 在ExtJS dataview單選模式下如何清除項目選擇
- 8. 如何清除
- 9. 如何清除recyclerView清單?
- 10. 以前的數據未在EXTJS的散點圖中清除4
- 11. 如何清除/清除VxWorks中的消息隊列緩衝區?
- 12. 我們如何獲得extjs樹中的select節點的索引?
- 13. Extjs 4.1樹加載
- 14. ExtJs更改樹根
- 15. 負荷樹:ExtJS的 - Jayrock
- 16. ExtJS的樹節點位置
- 17. ExtJS的樹面板結合
- 18. 樹的ExtJS數據存儲
- 19. ExtJS的樹動態加載
- 20. 如何用Spring MVC控制器中的數據填充ExtJS樹?
- 21. 如何在Extjs的樹狀面板中聆聽dragstart?
- 22. 如何清除trac?
- 23. 如何清除QSharedMemory
- 24. 如何清除ostringstream
- 25. 如何清除System.Web.Helpers.WebCache?
- 26. 如何清除stringstream?
- 27. 如何清除JSF
- 28. 如何清除Drupal.settings?
- 29. 如何清除AsyncTask
- 30. 如何清除DatePicker