其实,对DatatGrid进行筛选,本质是对DataGrid的dataProvider进行筛选。筛选功能通过ICollectionView接口的filterFunction属性实现。

通常,DataGrid的dataProvider会是一个ArrayCollection,而ArrayCollection实现了ICollectionView接口,因此可以直接使用filterFunction属性。

因此,要实现对一个ArrayCollection的筛选,只需要把一个自定义函数名指定给这个要被筛选的ArrayCollection的filterFunction属性,然后刷新ArrayCollection即可,例如:

 

cityAC.filterFunction = filterFunc;
cityAC.refresh();
可以查看ArrayCollection的属性filterFunction 的说明,其最重要一点是refresh()的调用。

自定义函数就是筛选功能实现的核心:
filterFunction 的签名为:(item:Object):Boolean
private function filterFunc(item:Object):Boolean
filterFunc这个函数的参数就是ArrayCollection的一项,通过在判断相应项目的值,
返回true的项目会显示,
返回false的项目则不会显示在DataGrid中。