Javascript ExtJS4JSON树存储?
我正在将ExtJs3应用程序迁移到ExtJs4。Javascript ExtJS4JSON树存储?,javascript,extjs,tree,store,extjs4,Javascript,Extjs,Tree,Store,Extjs4,我正在将ExtJs3应用程序迁移到ExtJs4。 在ExtJs3中,我有一个树网格,它有一个加载程序来加载树数据,如下所示: loader: new Ext.tree.TreeLoader({ dataUrl: 'Department/DepartmentTree', nestedRoot: 'Data.items' }) var store = Ext.create('Ext.data.TreeStore', {
在ExtJs3中,我有一个树网格,它有一个加载程序来加载树数据,如下所示:
loader: new Ext.tree.TreeLoader({
dataUrl: 'Department/DepartmentTree',
nestedRoot: 'Data.items'
})
var store = Ext.create('Ext.data.TreeStore', {
model: 'DepartmentTreeModel',
folderSort: true,
proxy: {
type: 'ajax',
url: 'Department/DepartmentTree',
reader: {
type: 'json',
root: 'Data.items'
}
}
});
因此,我尝试在ExtJs4中创建一个树存储,如下所示:
loader: new Ext.tree.TreeLoader({
dataUrl: 'Department/DepartmentTree',
nestedRoot: 'Data.items'
})
var store = Ext.create('Ext.data.TreeStore', {
model: 'DepartmentTreeModel',
folderSort: true,
proxy: {
type: 'ajax',
url: 'Department/DepartmentTree',
reader: {
type: 'json',
root: 'Data.items'
}
}
});
调用上述存储的load函数时出错无法读取未定义的的属性“items”
JSON响应如下所示:
{
"Data":{
"__type":"ListWrapperOfDepartmentTreeNodewnEzJCii:#PortalMvc.Global.Classlibrary.Model.Ui.JSONWrappers",
"items":[{
"ActualHeadcount":0,
"Headcount":0,
"Leavers":0,
"ParentId":"~~",
"Starters":0,
"children":[{
"ActualHeadcount":0,
"Headcount":0,
"Leavers":0,
"ParentId":"!#",
"Starters":0,
"children":[{
"ActualHeadcount":0,
"Headcount":0,
"Leavers":0,
"ParentId":"*w",
"Starters":0,
"children":[{
"ActualHeadcount":0,
"Headcount":0,
"Leavers":0,
"ParentId":"*z",
"Starters":0,
"children":[],
"iconCls":"admin_button",
"id":"*{",
"leaf":true,
"text":"Parking1_subtree1"
}]
}]
}]
}]
}
}
它期望为每一组子节点重复根节点。所以对于“儿童”,它也尝试读取“Data.items”
如果无法更改数据结构,则根也可以是一个函数,类似于:
root: function(o) {
if (o.Data) {
return o.Data.items;
} else {
return o.children;
}
}