ExtJS 4.1 TreeStore中的不同节点类型

时间:2012-07-10 12:52:38

标签: extjs extjs4.1

我有一个带有嵌套数据的树数据结构。

TreeNodes和DataNodes。与文件系统一样,TreeNodes是文件夹,DataNodes是文件。

但是JSON结构是这样的:

{
  name: 'root',
  data: [
    [a, b, 100, 23],
    [a, b, 100, 23],
    [a, b, 100, 23]
    ...
  ]
  children: [
    {
      name: 'child1',
      data: [...],
      children: [...]
    },
    {
      name: 'child2',
      data: [...],
      children: [...]
    },
    ...
  ]
}

我想将子节点解析为TreeNodes,将数据数组解析为DataNode,并在一个TreeStore中使用它们。

这可能吗?

ATM我得到了TreeNodes,每个Tree节点都有一个关联的数据记录,这是一个次优的解决方案。

1 个答案:

答案 0 :(得分:1)

我有类似的情况。您需要做的是创建一个包含两种数据类型的模型类(提取重叠属性)。就树存储而言,它不会区分记录类型,但您可以通过图标自定义树的外观,以使每个记录类型具有独特的外观。但数据必须相同,例如两个记录类型的Name属性必须相同。

由于服务器响应的JSON结构有些奇怪,您必须自己解析它并形成treestore期望的结构。或者,您需要控制服务器端实现并在那里进行调整。