0

我有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 树(例如,第一次我想从 /tree1 和然后,当我扩展我的树时,从 /generalTree 获取);

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

4

2 回答 2

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

}
于 2013-10-15T13:36:47.497 回答
-1

您可以在 store 上调用load方法并为请求使用另一个 url 或添加参数:

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

// parameters
storeTree.load({
    params: {
        init: true
    }
});
于 2013-10-15T12:41:19.533 回答