`
nianshi
  • 浏览: 416227 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex使用ArrayCollection的filterFunction属性过滤DataGrid

    博客分类:
  • Flex
阅读更多

下面的实例演示了在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>

分享到:
评论

相关推荐

    使用搜索的关键字过滤DataGrid的行

    在ActionScript中,你可以使用ArrayCollection的filterFunction属性来定义一个自定义过滤函数,该函数会接收一个数据对象和一个比较值(即搜索关键字),并返回一个布尔值表示该对象是否应被包含在过滤后的结果中。...

    Flex过滤DataGrid显示的数据

    在Flex中,还可以使用ArrayCollection的`filterFunction`属性和`refresh()`方法来实现动态过滤。`filterFunction`是一个回调函数,用于判断数据项是否应显示在DataGrid中。 此外,Flex还提供了高级过滤功能,如使用...

    Flex-DataGrid使用关键字过滤结果

    在Flex应用中,DataGrid通常用于显示来自数据提供者(如ArrayCollection或XMLListCollection)的数据,并支持排序、分页和过滤等功能。本文将深入探讨如何利用关键词对Flex DataGrid中的数据进行过滤,以实现更高效...

    flex 数据绑定 dataGrid.rar

    过滤功能可通过`filterFunction`属性实现。 6. **事件处理**:DataGrid提供了多种事件,如`click`, `doubleClick`, `sort`等,可以监听这些事件以响应用户交互。 三、示例代码 ```xml &lt;mx:DataGrid id="myGrid" ...

    ArrayCollection不完全绑定

    4. **过滤和排序**:如果使用了filterFunction或sort对象,未正确处理过滤和排序后的数据更新,也可能导致不完全绑定。过滤和排序操作会创建一个新的视图,需要确保绑定的是这个视图而不是原始数据。 5. **多层数据...

    Grid(3)[数据过虑]

    - `ICollectionView`接口:`Flex`中的数据提供者通常实现了这个接口,它定义了`filterFunction`属性和`filterCriteria`方法,用于设置和应用过滤器。 - `IFilterableCollectionView`接口:扩展了`ICollectionView`...

    Flex--AdvanceDataGrid(列头筛选功能,含ComboBox列、Button列、Checkbox列等)

    在Flex开发中,AdvancedDataGrid(ADG)是高级数据网格组件,相比普通的DataGrid,它提供了更丰富的功能,如分组、排序、多级表头以及更复杂的列类型。在"Flex--AdvanceDataGrid(列头筛选功能,含ComboBox列、Button...

    flex fliter

    - `filter()`方法用于触发过滤操作,设置`filterFunction`属性为`filterMyArrayCollection`函数,然后调用`refresh()`方法来刷新数据集。 - `filterMyArrayCollection()`函数根据输入框中的文本对数据项进行过滤。...

    AdvancedDataGrid综合应用

    AdvancedDataGrid支持内置的过滤和搜索功能,通过使用FilterMetadata和FilterFunction,可以实现对数据的筛选和查找。 7. **拖放功能** AdvancedDataGrid提供了拖放功能,用户可以方便地移动行或列,这对于数据...

    表格演示(1)AdvancedDataGrid应用

    可以使用filterFunction来定义自定义的筛选逻辑,或者直接通过设置filter属性来使用内置的筛选条件。 至于渲染器,AdvancedDataGrid支持自定义单元格渲染,这在展示特殊格式的数据或添加交互性时非常有用。开发者...

Global site tag (gtag.js) - Google Analytics