将静态数据加载到Ext.data.TreeStore

时间:2011-12-05 15:35:48

标签: extjs extjs4

我可以将一些静态数据加载到Ext.data.TreeStore实例吗? 对于Ext.data.Store来说非常简单 - 我们所要做的就是将data param添加到config。

但我不能为Ext.data.TreeStore看到这样的事情。

3 个答案:

答案 0 :(得分:13)

使用内存代理创建TreeStore实例,然后将商店的ROOT NODE设置为您已获得的静态数据。

Ext.define('Task', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'task', type: 'string'},
        {name: 'user', type: 'string'}
    ]
});

var store = Ext.create('Ext.data.TreeStore', {
    model: 'Task',
    proxy: {
        type: 'memory'
    },
    folderSort: true
});

var data = {
    "text":".",
    "children": 
        [
            {
                task:'Project: Shopping', 
                user:'Will', 
                iconCls:'task-folder', 
                expanded: true,
                children:
                [
                    {
                        task:'Housewares', 
                        user:'Will', 
                        iconCls:'task-folder',
                        expanded: true,
                        children:[
                            { 
                                task:'Kitchen supplies', 
                                user:'Alpha', 
                                leaf:true, 
                                iconCls:'task' 
                            },
                            { 
                                task:'Groceries', 
                                user:'Bravo', 
                                leaf:true, 
                                iconCls:'task' 
                            }
                        ]
                    }
                ]
            }
        ]
    };

var rootNode = store.setRootNode(data);

答案 1 :(得分:5)

你也可以这样做:

var store = Ext.create('Ext.data.TreeStore', {
    model: tree_model,
    // normally the data object would go here
    proxy: {
        data : data, // instead it goes here
        type: 'memory',
        reader: {
            type: 'json',
        }
    },
});

答案 2 :(得分:3)

TreeStore中有root而不是data