ExtJS 4.1 TreeStore 中的不同节点类型

Posted

技术标签:

【中文标题】ExtJS 4.1 TreeStore 中的不同节点类型【英文标题】:Different node types in a ExtJS 4.1 TreeStore 【发布时间】:2012-07-10 12:52:37 【问题描述】:

我有一个包含嵌套数据的树形数据结构。

树节点和数据节点。就像在文件系统中一样,TreeNodes 是文件夹,DataNodes 是文件。

但是JSON结构是这样的:

名称:'根', 数据: [ [a, b, 100, 23], [a, b, 100, 23], [a, b, 100, 23] ... ] 孩子们: [ 名称:'child1', 数据: [...], 孩子们: [...] , 名称:'child2', 数据: [...], 孩子们: [...] , ... ]

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

这可能吗?

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

正如我所料...还是谢谢你。如何配置 TreeStore 以将 datachildrend 解析为子节点? 你真的无法配置它来做到这一点。因为您必须指定数据的根在哪里。默认情况下需要孩子。您可以做的是通过迭代 jSOn 数组并创建从 NodeInterface 扩展的模型实例来创建自己的结构。

以上是关于ExtJS 4.1 TreeStore 中的不同节点类型的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 JSON 解析为 ExtJS 4.1 TreeStore

EXTJS 4.1 如何在不重新加载 TreeStore 的情况下删除过滤器

ExtJs 4.1-通过单击另一个视图中的树节点将选项卡添加到选项卡视图

Extjs TreeStore,多个异步请求,treepanel渲染错位

为啥 Extjs 4.0.7 TreeStore 会自动调用 http delete 方法?

如何在 extjs 4 (mvc) 中过滤静态 treeStore