【问题标题】:How to filter flex datagrid with three check boxes.?如何使用三个复选框过滤 flex 数据网格。?
【发布时间】:2011-07-05 16:36:59
【问题描述】:

我是 flex 新手。

我需要你的帮助。谁能帮帮我。

我的要求: Flex Datagrid 应该基于 3 个复选框进行过滤。(复选框可以通过多种组合进行检查)。

我的代码:

复选框:

数据提供者:

MXML 代码:

在这里,当我检查 3 个复选框的不同组合时,我必须过滤数据网格。 复选框值来自 arraycollection 的 Staus 列。 当我选择“已完成”复选框和“暂停”复选框时,数据网格应仅显示状态为“已完成”和“暂停”的那些记录。 对于 c 的所有组合也是如此

谁能给出简单的解决方案?

谢谢, 阿南德.k

【问题讨论】:

    标签: flex3


    【解决方案1】:

    使用 ArrayCollection 作为你的 dataProvider 并为它的 filterFunction 属性分配一个过滤函数:

    var provider:ArrayCollection;
    

    在实例化数组的部分,给它一个 filterFunction :

    provider.filterFunction = myFilteringFunction;
    

    使用 filterFunction 的代码如下:

    private function myFilteringFunction(item:ObjectTypeInYourArray) : Boolean {
    
            var show:Boolean;
            if(item.completed == checkBox1.checked && 
               item.onHold == checkBox2.checked){
                    show = true;
            }
    
            return show;   
    }
    

    这是一个带有两个复选框的示例。分配给对象的 completed 和 onHold 属性的值类型可能不是布尔值,因此在将它们与复选框的状态进行比较之前,您必须以某种方式对其进行转换,但我认为您明白了。

    基本上,您传递给您的 arraycollection 的 filterFunction 将应用于内部的每个项目,并根据您内部的代码返回 true 或 false(例如,检查对象的属性是否具有正确的值)。当true 显示值时

    在您的复选框的更改事件中,您刷新 dataProvider :

    provider.refresh();
    

    希望有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      相关资源
      最近更新 更多