我正在使用具有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
一月
Building100
Floor1
Room1.1
Room1.2
Floor2
Floor3
Room3.1
Room3.2
在Floor2的情况下,我不想显示GroupingField“房间”,因为在我的数据中它是null所以我想隐藏它。但仅限于Floor2。
谢谢。
答案 0 :(得分:0)
GroupingCollection
的来源是ArrayCollection
?在GroupingCollection
中使用AdvancedDatagrid
的位置?是否可以在ADG的dataProvider上使用过滤器!
使用这样的系统: 创建dataProvider的集合以对其应用过滤器。
private function setFilter(filterFunctionName:Function):void
{
ICollectionView(yourADG.dataProvider).filterFunction = filterFunctionName;
ICollectionView(yourADG.dataProvider).refresh();
}
下面的函数就像你的集合的filterFunction的setter!在你的情况下,你想要一个能够过滤&#34;空节点的函数&#34; (在你的例子中为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
}
当您想要过滤数据时,您只需要调用函数过滤器!
您可以在我的帖子中看到类似的问题:How to know if there are sub items/nodes in an AdvancedDatagrid
我希望这会有所帮助(对不起我的英语:s)