如何使用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": {
}
};
感谢任何帮助。
答案 0 :(得分: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_parent的“id”。
答案 1 :(得分: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'
}
}
});