• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>Flex>文章内容
  • 使用ArrayCollection的filterFunction属性过滤DataGrid
  • 来源:N神AS研究所 作者:N神AS研究所 2008-03-14 【

下面的实例演示了在Flex中怎样使用 CheckBox 组件和 ArrayCollection 的 filterFunction 属性来过滤 DataGrid 组件的 item 。

先看演示:点击checkBox进行过滤,只显示值为0的数据



该演示的代码:
<?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>

[exclaim] 查看MXML

此文已经被收录在 《Flex 3 常见组件使用技巧系列 》中,点此进入该主题。

Thanks Flexexamples.com



上一篇:Flex 中在表单(Form组件)上填加动画效果(Effect)   下一篇:BlazeDS入门:HTTP Service
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)