Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何知道AdvancedDatagrid中是否有子项/节点_Actionscript 3_Apache Flex_Flex4_Mxml - Fatal编程技术网

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

Actionscript 3 如何知道AdvancedDatagrid中是否有子项/节点,actionscript-3,apache-flex,flex4,mxml,Actionscript 3,Apache Flex,Flex4,Mxml,总结:如果节点分支(级别1)没有数据项,如何删除它?如果节点的子项被(空的或已经)删除,则反过来也会删除较高级别0的节点。 在互联网上进行了大量搜索之后,我仍然需要知道如何找出AdvancedDatagrid或“节点”是否包含子节点。如何知道它是空的还是有“东西”?有了它,我就可以用我的函数对它进行过滤。。(解释如下): 首先,我为我的英语不好道歉 我有一个AdvancedDatagrid,带有fordataProvider一个ArrayCollection。 我使用GroupingCollec

总结:如果节点分支(级别1)没有数据项,如何删除它?如果节点的子项被(空的或已经)删除,则反过来也会删除较高级别0的节点。

在互联网上进行了大量搜索之后,我仍然需要知道如何找出
AdvancedDatagrid
或“节点”是否包含子节点。如何知道它是空的还是有“东西”?有了它,我就可以用我的函数对它进行过滤。。(解释如下):

首先,我为我的英语不好道歉

我有一个
AdvancedDatagrid
,带有for
dataProvider
一个
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
或者我不知道这种方法….(顺便感谢您的更正)