如何知道AdvancedDatagrid中是否有子项/节点

时间:2014-07-11 14:27:42

标签: actionscript-3 flex flex4 mxml

总结:如果节点分支(级别1)的数据项为零,如何删除它?如果它的子项被删除(空或已被删除),那么又会删除更高级别0的节点

经过互联网搜索后,我仍然需要知道如何查明AdvancedDatagrid或“节点”是否包含子项。如何知道它是空的还是有“东西”?有了它,我将能够使用我的函数对其进行过滤..(下面的Expalined):

首先,我为我糟糕的英语道歉。

我有AdvancedDatagrid dataProviderArrayCollection。 我使用GroupingCollection2在节点中对数据进行分组。

我在ICollectionView dataProvider的{​​{1}}上使用了filterFunction。它有效!

我的分组数据示例:

AdvancedDatagrid

我只过滤“叶子”(数据子节点)上的数据。在我的过滤功能之后,数据项目会被正确过滤!

过滤后的结果示例:数据2 数据4 数据5 数据6

- Node level 0
  -- Node level 1
     ++ Data 1
     ++ Data 2
     ++ Data 3
  -- Node level 1
     ++ Data 4
     ++ Data 5
- Node level 0
  -- Node level 1
     ++ Data 6
     ++ etc..

例如,具有“不需要的”数据的节点已被正确过滤掉。

但我想过滤掉那些现在“空”的节点!!那就是说如果它有零叶子项,我如何删除节点分支(级别1)?如果它们的总分支在被删除后为零,那么又会删除节点级别0

我想要这个清单:

- Node level 0
  -- Node level 1
     ++ Data 1
     ++ Data 3
  -- Node level 1

- Node level 0
  -- Node level 1

提前谢谢。

(ps:如果我不够具体,我可以提问)

1 个答案:

答案 0 :(得分:1)

好吧我终于弄明白了!!!

我的秘诀是,当我使用GroupingCollection2对数据进行分组时,我会将一些新闻(带有groupingField分组。但是节点的itemRenderer没有显示新闻。 对于这些新闻的系统substring,我会在filterFucntion中使用它们。

关于“基本”分组与我的分组之间差异的说明: 事实上,当您对数据进行分组时,创建的节点仅包含已创建的字段。

例如我的数据有4个fiels:域名,测试,状态,版本。 我按域和组对它们进行分组像这样的测试(这是我的数据如何显示的一个例子,每个级别的项目渲染器都不同)

数据之前:

- domain 1
  -- test 1
     ++ status/version 1
     ++ status/version 2
  -- test 2
     ++ status/version 3
     ++ status/version 4
- domain 2 etc..
叶子上的

但是(++行),在分组之后,还有“分组”字段的数据。即测试和域名域名!

对于基本分组后的摘要:

  • 节点级别0中的数据:域
  • 节点级别1中的数据:test
  • 叶级别2中的数据:domain / test / status / version。

我的分组数据显示相同。

<强> BUT

分组后:

  • 节点级别0中的数据:域
  • 节点级别1中的数据:domain / test
  • 叶级别2中的数据:domain / test / status / version。

多亏了我可以用我的过滤器功能(使用子串系统)知道每个节点的父节点,并且在过滤器之后节点是空的同一场合!

我觉得我一点都不清楚,我道歉......这真的很复杂,所以如果有人遇到类似的问题,我已经准备好回答更具体的问题!!