Actionscript 3 如何知道AdvancedDatagrid中是否有子项/节点
总结:如果节点分支(级别1)没有数据项,如何删除它?如果节点的子项被(空的或已经)删除,则反过来也会删除较高级别0的节点。 在互联网上进行了大量搜索之后,我仍然需要知道如何找出Actionscript 3 如何知道AdvancedDatagrid中是否有子项/节点,actionscript-3,apache-flex,flex4,mxml,Actionscript 3,Apache Flex,Flex4,Mxml,总结:如果节点分支(级别1)没有数据项,如何删除它?如果节点的子项被(空的或已经)删除,则反过来也会删除较高级别0的节点。 在互联网上进行了大量搜索之后,我仍然需要知道如何找出AdvancedDatagrid或“节点”是否包含子节点。如何知道它是空的还是有“东西”?有了它,我就可以用我的函数对它进行过滤。。(解释如下): 首先,我为我的英语不好道歉 我有一个AdvancedDatagrid,带有fordataProvider一个ArrayCollection。 我使用GroupingCollec
AdvancedDatagrid
或“节点”是否包含子节点。如何知道它是空的还是有“东西”?有了它,我就可以用我的函数对它进行过滤。。(解释如下):
首先,我为我的英语不好道歉
我有一个AdvancedDatagrid
,带有fordataProvider
一个ArrayCollection
。
我使用GroupingCollection2
将数据分组到节点中
我在AdvancedDatagrid
的dataProvider
的ICollectionView
上使用过滤器功能。它起作用了
我的分组数据示例:
- 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..
我只过滤“leafs”(数据子节点)上的数据。在我的筛选功能之后,数据项被正确筛选
过滤后的结果示例:数据2、数据4、数据5、数据6:
- Node level 0
-- Node level 1
++ Data 1
++ Data 3
-- Node level 1
- Node level 0
-- Node level 1
例如,具有“不需要的”数据的节点将被正确过滤掉
但是我也想过滤掉那些现在“空”的节点!!也就是说如果节点分支(级别1)没有叶项目,如何删除它?反过来,如果节点级别为0的分支总数在被删除后为零,则也会删除节点级别为0的分支?
我想要这份清单:
- Node level 0
-- Node level 1
++ Data 1
++ Data 3
先谢谢你
(注:如果我不够具体,我可以提问)好吧,我终于明白了强> 我的秘密是,当我使用
GroupingCollection2
对数据进行分组时,我会将一些新闻(使用groupingField
)传递给分组的节点。但节点的itemRenderer不会显示新闻。
对于这些新闻,我使用了一个子字符串系统,在我的过滤器功能中使用它们
解释“基本”分组和我的分组之间的区别:
事实上,在对数据进行分组时,创建的节点只包含创建它们的字段
例如我的数据有4个领域:域、测试、状态、版本。
我像这样按域和测试对它们进行分组(这是一个显示数据的示例,每个级别的项目呈现器都不同)
之前的数据是这样的:
- domain 1
-- test 1
++ status/version 1
++ status/version 2
-- test 2
++ status/version 3
++ status/version 4
- domain 2 etc..
但是在叶子(++行)上,分组后,仍然有字段“分组”的数据。即测试和域域域
对于基本分组后的摘要:
- domain 1
-- test 1
++ status/version 1
++ status/version 2
-- test 2
++ status/version 3
++ status/version 4
- domain 2 etc..
- 节点级别0中的数据:域
- 节点级别1中的数据:测试
- 叶级别2中的数据:域/测试/状态/版本
我分组后显示的数据相同。
但是
分组后:
- domain 1
-- test 1
++ status/version 1
++ status/version 2
-- test 2
++ status/version 3
++ status/version 4
- domain 2 etc..
- 节点级别0中的数据:域
- 节点级别1中的数据:域/测试
- 叶级别2中的数据:域/测试/状态/版本
正因为如此,我可以使用我的筛选函数(使用子字符串系统)知道每个节点的父节点,并且在相同的情况下,如果在筛选后节点为空
我想我一点也不清楚,我道歉。。这真的很复杂,所以如果有人遇到类似的问题,我准备回答更具体的问题您是否可以仅使用剩余的项目作为新树设置的输入来更新/重新创建树?我不使用Flex或MXML,但是否有办法读取“节点”长度?(即,如果节点为空,则为零)。无论如何,对于该信息,您可以尝试一些if/Else
语句。如果节点已筛选,则将其从“节点项”列表中删除并更新树。或者即使node\u level\u 1
没有叶(leaf.length==0)然后删除节点,如果Node\u level\u 0
没有子节点,则在过滤后删除Node\u level\u 0
。最后显示的3项在——Node level 1
和——Node level 0
之间真的存在空间吗?就像它仍然为++数据4和++数据5保留着一个不可见的插槽一样?希望有经验的人可以elpExactly!我正在寻找一种“读取节点长度”的方法。这是一种可以做到这一点的方法,但不是使用GroupingCollection
或者我不知道这种方法….(顺便感谢您的更正)