0

如何使用 Ajax 响应加载树面板树存储。

如何使用 Ajax 响应 json 加载树面板树存储。

我可以在本地加载它,即如果我在本地有可用的 json 文件,那么我可以使用 treeStore.load() 方法通过配置的代理加载它。

但是现在如果我有来自 Ajax 响应的数据,那么我该怎么做呢?

模型 :

Ext.define('dimExpModel', {
extend : 'Ext.data.Model',
fields : [
{
    name: 'memberName'
},
{
    name: 'memberCode'
},
{
    name: 'dimension'
}
]
});

店铺 :

var dimExpStore = Ext.create('Ext.data.TreeStore',{
         storeId:'dimExpStore',
         model:dimExpModel,
         proxy: {
                    type: 'memory',
                    reader: {
                        type: 'json'
                    }
                }

    });

树面板:

{
"xtype": "treepanel",
"height": 250,
"id": "treePanel",
"width":400,
"title":"My Tree Panel",
"store": "dimExpStore",
"displayField":"memberName",
"useArrows":true,
"viewConfig": {

}
};

任何帮助表示赞赏。

4

2 回答 2

0

T会这样做:

{
"xtype": "treepanel",
"height": 250,
"id": "treePanel",
"width":400,
"title":"My Tree Panel",
"rootVisible":false,
"store":{autoLoad:true,"fields":[{"name":"id",type:"string"},
{"name":"memberName","type":"string"},{"name":"memberCode","type":"string"},
{"name":"memberCode","type":"dimension"}],
proxy:{type:'ajax',url:'json.php'},root:{text:"Members","id":"src","expanded":true}}
"displayField":"memberName",
"useArrows":true,
"viewConfig": {

}
};

在我的示例json.php中,以正确的形式返回所需的 json。

编辑 看看root块内的“id”参数。每次单击包含子节点的树节点时,在服务器端,您应该根据该“id”形成正确的响应,该“id”实际上是所有这些子节点的 id_parent。

于 2013-08-14T15:02:51.690 回答
0

您需要将商店代理定义为 ajax 并调用 store.load()

var dimExpStore = Ext.create('Ext.data.TreeStore',{
     storeId:'dimExpStore',
     model:dimExpModel,
     proxy: {
        type: 'ajax',
        url : 'users.json',
        reader: {
            type: 'json',
            root: 'records',
            totalProperty:  'recordCount',
            successProperty: 'success'
        }
    }
});
于 2013-08-15T17:45:36.827 回答