首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ExtJs4 Json TreeStore?

ExtJs4 Json TreeStore?
EN

Stack Overflow用户
提问于 2011-06-07 17:41:44
回答 1查看 4.2K关注 0票数 2

我正在将我的ExtJs3应用程序迁移到ExtJs4。

在ExtJs3中,我有一个树网格,它有一个加载器来加载树数据,如下所示:

代码语言:javascript
运行
复制
loader: new Ext.tree.TreeLoader({ 
            dataUrl: 'Department/DepartmentTree', 
            nestedRoot: 'Data.items'
    })

所以我尝试在ExtJs4中创建一个treeStore,如下所示:

代码语言:javascript
运行
复制
   var store = Ext.create('Ext.data.TreeStore', {
        model: 'DepartmentTreeModel',
        folderSort: true,
        proxy: {
            type: 'ajax',
            url: 'Department/DepartmentTree',
            reader: {
                type: 'json',
                root: 'Data.items'
            }
        }
    });

当我在上面的存储Cannot read property 'items' of undefined上调用load函数时,我得到一个错误。

JSON响应如下所示:

代码语言:javascript
运行
复制
    {
"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"
                }]
            }]
        }]
    }]
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-07 22:22:35

它期望对每组子节点重复根。因此,对于“孩子”,它也试图读取"Data.items“。

如果你不能改变数据结构,根也可以是一个函数,如下所示:

代码语言:javascript
运行
复制
root: function(o) {
    if (o.Data) {
        return o.Data.items;
    } else {
        return o.children;
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6263380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档