晕:)

我有一个带有AsyncNode根的TreePanel(在其工具栏中带有一个按钮)。由于某些原因,当单击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);
        }
    });

最佳答案

您的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);

关于javascript - ExtJs更改树根,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5392965/

10-12 13:05