这里主要展示如何使用搜索的关键字过滤DataGrid的行。其实也不是很难,因为DataGrid使用dataProvier可以是ArrayCollection,并且ArrayCollection本身就有过滤的功能即使用变量filterFunction.所以基本上,你的DataGrid和dataProvider像如下的定义:
[Bindable] public var dpRows:ArrayCollection;
然后你可以用一种简单的方法来创建过滤的方法:
public function filterResults():void { dpRows.filterFunction = _sortRows; dpRows.refresh(); }
最后,是使用_sortRows方法来对符合过滤关键字的行返回一个ture--那行就可见,否则返回false--那行就被隐藏。
private function _sortRows(item:Object):Boolean { var col:String = cmbCol.selectedItem.data as String; var key:String = keyword.text; key = key.toLowerCase(); if (key != "") { if (col != "any") { var value:String = item[col]; value = value.toLowerCase(); if (value.indexOf(key)>= 0) { return true; } } else { for (var o:String in item) { value = item[o]; value = value.toLowerCase(); if (value.indexOf(key)>= 0) { return true; } } } } else { return true; } return false; }