2011-03-22 101 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