2011-03-22 103 views
0

直升飛機:)ExtJs更改樹根

我有一個TreePanel(帶有工具欄中的按鈕)與AsyncNode根。出於某種原因,我需要在單擊按鈕時更改樹內容。我調用Ext.Ajax.request並返回所有必要的數據。但是我怎麼能把它放到我的TreePanel中?

我嘗試下面的代碼,但它不工作:(

Ext.Ajax.request({ 
     url: '../mocksearch', 
     params: { 
      pattern: txtSearch.getValue() 
     }, 
     success: function(result, options) { 
      searchResultRoot = Ext.decode(result.responseText); 
      tree.setRootNode(searchResultRoot);     
     } 
    }); 

回答

3

TreePanel綁定到TreeLoader負責加載和保存數據的。

因此,唯一的辦法改變你的樹就是改變TreeLoader中的數據

你可以試試這個:在你的按鈕上,更改dataUrl和/或baseParams並調用Treeloader load方法。一旦加載,Treeloader應該自動刷新你的樹。

你可以嘗試這樣的:

mybutton.on('click', function(button, event) { 
    var treepanel = this.mytree; 
    treepanel.dataUrl = 'mynewurl.php'; 
    treepanel.baseParams = {page:'tree2'} 
    treepanel.getLoader.load(this.mytree.getRootNode()) 
}, this); 
+0

Jujule,感謝您的幫助:) – Artem 2011-03-23 15:23:55