过滤功能问题

时间:2010-03-13 20:10:17

标签: flex filter filterfunction

我正在处理我正在处理的应用的搜索组件,我需要添加一些过滤器。我找到了一个例子,让第一个过滤器工作正常。

现在我正在尝试添加第二个过滤器,我遇到了问题......在示例中,我发现它们使用filterFunctions,但我只获得了filterFunction的选项,为什么会这样?

这是示例代码

   productsCollection.filterFunctions =
[
 filterByPrice, filterByType,
 filterByCondition, filterByVendor
]

这就是我正在尝试的

acData.filterFunction = [filterByStatus, filterByDate]

但是使用此代码我收到以下错误消息 - 1067:将类型Array的值隐式强制转换为不相关的类型函数。

为什么我会收到此错误以及如何向Array Collection添加多个过滤器?

谢谢!

2 个答案:

答案 0 :(得分:3)

filterFunction必须设置为单个函数,而不是Array或任何其他数据类型。要组合多个函数,请创建一个组合它们的函数,如下所示:

acData.filterFunction = function(item:Object) 
    {
         return
             filterByPrice(item) &&
             filterByType(item) &&
             filterByCondition(item) &&
             filterByVendor(item);
    };

如果您看到使用filterFunctions复数形式接受数组的示例,请发布链接。这不是标准Flex框架或新版4.0测试版中的任何地方。

答案 1 :(得分:0)

看起来您将不得不扩展一个arraycollection以使其工作。此链接应该为您拼出:http://blog.rotundu.eu/flex/arraycollection-with-multiple-filter-functions/