ExtJS树加载(更改代理URL)

时间:2013-10-15 12:08:13

标签: extjs extjs4 extjs4.1 extjs4.2

我有 Ext.tree.Panel ,我使用 Ext.data.TreeStore 作为我的树。

var storeTree = Ext.create('Ext.data.TreeStore', {
    expanded: false,
    proxy: {
        type: 'ajax',
        url: '/tree'
    },
    root: {
        text: 'Ext JS',
        id: 'src',
        expanded: true
    },
    folderSort: true,
    sorters: [{
        property: 'text',
        direction: 'ASC'
    }]
});

一切正常!

但我现在需要这样的东西:第一次,当我打开页面时,当我的树将被加载时,我需要从另一个位置获取JSON树(例如,我第一次想要从中获取JSON / tree1然后,当我展开我的树时,从/ generalTree获取;

换句话说,我第一次想从其他JSON加载树。我现在不知道。或者我可以向服务器发送参数,告诉它,它是第一次使用树(嘿,服务器,树由我自动扩展,而不是用户点击)

2 个答案:

答案 0 :(得分:1)

Ext.tree.Panel中的解决方案

listeners : {

        beforeload: function ( th, records, successful, operation, eOpts ){
          console.log("load");
          storeTree.getProxy().extraParams.().extraParams.changableParam  = 'second';
          storeTree.getProxy().url = '/another url';
        }

}

答案 1 :(得分:-1)

您可以在商店中调用load方法,并为请求使用其他网址或添加参数:

// different URL
storeTree.load({
    url: '/treeinit'
});

// parameters
storeTree.load({
    params: {
        init: true
    }
});