下面的实例演示了在Flex中怎样使用 CheckBox 组件和 ArrayCollection 的 filterFunction 属性来过滤 DataGrid 组件的 item 。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridColumn;
private function toggleFilter():void {
if (checkBox.selected) {
arrColl.filterFunction = processFilter;
} else {
arrColl.filterFunction = null;
}
arrColl.refresh();
}
private function processFilter(item:Object):Boolean {
return parseFloat(item.value) == 0;
}
private function value_labelFunc(item:Object, col:DataGridColumn):String {
return item[col.dataField].toFixed(2);
}
]]>
</mx:Script>
<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object name="ColdFusion" value="0.00" />
<mx:Object name="Dreamweaver" value="0.12" />
<mx:Object name="Fireworks" value="1.01" />
<mx:Object name="Flash" value="0" />
<mx:Object name="Flash Player" value="-0.00" />
<mx:Object name="Flex" value="0.00" />
<mx:Object name="Illustrator" value="2.92" />
<mx:Object name="Lightroom" value="0.32" />
<mx:Object name="Photoshop" value="0.06" />
</mx:Array>
</mx:source>
</mx:ArrayCollection>
<mx:Panel status="{arrColl.length}/{arrColl.source.length} item(s)">
<mx:DataGrid id="dataGrid"
dataProvider="{arrColl}"
verticalScrollPolicy="on">
<mx:columns>
<mx:DataGridColumn dataField="name" />
<mx:DataGridColumn dataField="value"
labelFunction="value_labelFunc" />
</mx:columns>
</mx:DataGrid>
<mx:ControlBar>
<mx:CheckBox id="checkBox"
label="Filter DataGrid"
click="toggleFilter();" />
</mx:ControlBar>
</mx:Panel>
</mx:Application>
分享到:
相关推荐
在ActionScript中,你可以使用ArrayCollection的filterFunction属性来定义一个自定义过滤函数,该函数会接收一个数据对象和一个比较值(即搜索关键字),并返回一个布尔值表示该对象是否应被包含在过滤后的结果中。...
在Flex中,还可以使用ArrayCollection的`filterFunction`属性和`refresh()`方法来实现动态过滤。`filterFunction`是一个回调函数,用于判断数据项是否应显示在DataGrid中。 此外,Flex还提供了高级过滤功能,如使用...
在Flex应用中,DataGrid通常用于显示来自数据提供者(如ArrayCollection或XMLListCollection)的数据,并支持排序、分页和过滤等功能。本文将深入探讨如何利用关键词对Flex DataGrid中的数据进行过滤,以实现更高效...
过滤功能可通过`filterFunction`属性实现。 6. **事件处理**:DataGrid提供了多种事件,如`click`, `doubleClick`, `sort`等,可以监听这些事件以响应用户交互。 三、示例代码 ```xml <mx:DataGrid id="myGrid" ...
4. **过滤和排序**:如果使用了filterFunction或sort对象,未正确处理过滤和排序后的数据更新,也可能导致不完全绑定。过滤和排序操作会创建一个新的视图,需要确保绑定的是这个视图而不是原始数据。 5. **多层数据...
- `ICollectionView`接口:`Flex`中的数据提供者通常实现了这个接口,它定义了`filterFunction`属性和`filterCriteria`方法,用于设置和应用过滤器。 - `IFilterableCollectionView`接口:扩展了`ICollectionView`...
在Flex开发中,AdvancedDataGrid(ADG)是高级数据网格组件,相比普通的DataGrid,它提供了更丰富的功能,如分组、排序、多级表头以及更复杂的列类型。在"Flex--AdvanceDataGrid(列头筛选功能,含ComboBox列、Button...
- `filter()`方法用于触发过滤操作,设置`filterFunction`属性为`filterMyArrayCollection`函数,然后调用`refresh()`方法来刷新数据集。 - `filterMyArrayCollection()`函数根据输入框中的文本对数据项进行过滤。...
AdvancedDataGrid支持内置的过滤和搜索功能,通过使用FilterMetadata和FilterFunction,可以实现对数据的筛选和查找。 7. **拖放功能** AdvancedDataGrid提供了拖放功能,用户可以方便地移动行或列,这对于数据...
可以使用filterFunction来定义自定义的筛选逻辑,或者直接通过设置filter属性来使用内置的筛选条件。 至于渲染器,AdvancedDataGrid支持自定义单元格渲染,这在展示特殊格式的数据或添加交互性时非常有用。开发者...