apache-flex - Spark 列表 : Show subset of Data Provider based on parameter

标签 apache-flex actionscript-3

我遇到的情况是 List显示上传对象队列:

public class Upload
{

    public var type:String; // Update or Create
    public var title:String;
    public var message:String; 
    ...
    }

因此,列表数据提供者看起来像:

var arrayCol:ArrayCollection = new ArrayCollection(
                               {new Upload("Upload", "blah"),
                                new Upload("Create", "blah2")});
list.dataProvider = arrayCol;

我想创建列表的三个不同 View :

  • 显示队列中所有个上传内容
  • 另一个仅显示 Upload.type == "Update" 的上传项目
  • 另一个仅显示 Upload.type == "Create" 的项目。

另一个例子是电子邮件收件箱,我们可以在其中过滤“全部、未读或已读”。

我意识到我可以创建三个不同的列表,每个列表对应一个 ListView (也许我只是比较挑剔),但我想知道:

是否有任何简单的方法可以根据参数(例如 type ==“Upload”)有条件地从 DataProvider 中选择要显示的项目,这样我就不必同时处理三个单独的项目ArrayCollections 是什么?

如果不是,那就是 3 个不同的列表和 3 个 ArrayCollections!

最佳答案

您想要查看数组集合上的过滤函数属性。您可以将过滤器分配给一个函数,该函数将在上传时查看属性,并有条件地决定是否应将其包含在集合中。设置过滤函数并在集合上调用refresh()后,对象的子集将出现在ArrayCollection中,但原始对象不会丢失。只需清除过滤器,然后在 ArrayCollection 上调用刷新()即可将其返回到其原始集合。

        var arrayCol:ArrayCollection = new ArrayCollection(
                                            {new Upload("Upload", "blah"),
                                            new Upload("Create", "blah2")});
        arrayCol.filterFunction = filterCompleted;
        arrayCol.refresh();

然后你的过滤函数将类似于:

        private function filterCompleted(item:Object):Boolean{
            if(Upload(item).isComplete)
                return true;
            return false;
        }

关于apache-flex - Spark 列表 : Show subset of Data Provider based on parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898027/

相关文章:

apache-flex - 检测 Flex Form 元素的变化(textinput、textarea、combobox、checkbox..)

apache-flex - Spark SkinnableComponent skinDestructionPolicy

java - 电子学习平台技术、设计和架构

actionscript-3 - 如果运行时加载的 Assets 不被使用,它们是否会消耗内存/资源?不仅仅是编译 Assets ?

actionscript-3 - AS3播放音频并循环播放

apache-flex - 将对象移回其在 ActionScript 中的原始位置

ios - 如何从 AIR for iOS 应用程序在 iPad 上打开 pdf

apache-flex - 在 Flex 中反序列化二进制对象时,对象初始化是如何发生的?

actionscript-3 - 使用 Adob​​e Air 生成无声音频文件

linux - linux 上的 actionscript 中的 hello world