Helo:)
我有一个带有AsyncNode root的TreePanel(工具栏中有一个Button)。出于某种原因,我需要在单击Button时更改树内容。我调用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);
}
});
答案 0 :(得分:3)
您的TreePanel
绑定了TreeLoader,负责加载和保存数据。
因此,更改Tree的唯一方法是更改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);