我是初学者。
我需要你的帮助。任何人都可以帮助我。
我的要求: Flex Datagrid应基于3个复选框进行过滤。(可以使用多种组合检查复选框)。
我的代码:
复选框:
数据提供者:
MXML代码:
当我检查3个复选框的不同组合时,我必须过滤数据网格。 复选框值来自arraycollection的Staus列。 当我选中“已完成”复选框和“保留”复选框时,数据网格应仅显示状态为“已完成”的记录。 “等候接听”。 同样适用于c
的所有组合请问有人能给出简单的解决方案吗?
谢谢, Anand.k
答案 0 :(得分:0)
使用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();
希望有所帮助