我使用5个GroupingFields的GroupingCollection,但有时我的数据没有GroupingFields之一的信息。当GroupingField在我的数据上为null时,我如何隐藏它?
这是我的GroupingCollection
<mx:GroupingCollection id="gc" source="{reqAnt}">
<mx:grouping>
<mx:Grouping>
<mx:GroupingField name="year" />
<mx:GroupingField name="month" />
<mx:GroupingField name="building" />
<mx:GroupingField name="floor" />
<mx:GroupingField name="room" />
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection>
这是我的数据
的一个例子2014年 1月Building100
Floor1
Room1.1
Room1.2
Floor2
Floor3
Room3.1
Room3.2
在Floor2的情况下,我不想显示GroupingField"room",因为在我的数据中它是空的,所以我想隐藏它。
谢谢。
您的GroupingCollection
的来源是ArrayCollection
?在哪里使用您的GroupingCollection
,在AdvancedDatagrid
?是否,您可以在ADG的数据提供程序上使用过滤器!
对于这样的系统:创建dataProvider的集合,以便在其上应用筛选器。
private function setFilter(filterFunctionName:Function):void
{
ICollectionView(yourADG.dataProvider).filterFunction = filterFunctionName;
ICollectionView(yourADG.dataProvider).refresh();
}
下面的函数作用类似于集合的filterFunction的setter !在你的例子中,你想要一个能够过滤"空节点"的函数(在你的例子中是floor2)!
public function filter():void
{
setFilter(FilterEmptyNode);
}
下面的函数过滤源,如果数据是正确的返回true,如果需要过滤返回false:
public function FilterEmptyNode():Boolean
{
// here the loop on your data to test if your node have children or not
}
当你想要过滤数据时,你只需要调用filter函数!
你可以看到我的帖子有一个类似的问题:如何知道是否有子项目/节点在AdvancedDatagrid
我希望这可以帮助一点(对不起我的英语:s)