ExtJs更改树根

时间:2011-03-22 14:39:14

标签: javascript ajax extjs tree

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);                 
        }
    });

1 个答案:

答案 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);