【问题标题】:ExtJs4 Json TreeStore?ExtJs4 Json TreeStore?
【发布时间】:2011-09-09 22:34:06
【问题描述】:

我正在将我的 ExtJs3 应用程序迁移到 ExtJs4。
在 ExtJs3 我有一个树网格,它有一个加载器来加载树数据,如下所示:

loader: new Ext.tree.TreeLoader({ 
            dataUrl: 'Department/DepartmentTree', 
            nestedRoot: 'Data.items'
    })

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

   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 上调用加载函数时出现错误。

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"
                }]
            }]
        }]
    }]
  }
}

【问题讨论】:

    标签: javascript extjs tree store extjs4


    【解决方案1】:

    它期望对每组子节点重复根。因此,对于“儿童”,它也在尝试读取“Data.items”。

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

    root: function(o) {
        if (o.Data) {
            return o.Data.items;
        } else {
            return o.children;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 2012-02-23
      • 2014-06-08
      • 2011-09-19
      • 1970-01-01
      • 2012-08-05
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多