Flex-DataGrid使用关键字过滤结果

      这里主要展示如何使用搜索的关键字过滤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;
}

 

 

 

你可能感兴趣的:(Flex)