您的位置:首页 > 其它

Flex3学习轨迹:使用DataGrid实现过滤显示

2012-02-29 14:40 190 查看
DataGrid组件主要用于显示数据,其本身有排序,自定义列布局,优化列标题,应用渲染器和项编辑等功能。但是DataGrid并没有实现数据过滤显示功能。

效果图如下:





代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="12">
<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 title="实现数据过滤显示" width="360" height="240"
horizontalAlign="center"
status="{arrColl.length}/{arrColl.source.length} 行">
<mx:ApplicationControlBar dock="true" width="100%">
<mx:CheckBox id="checkBox" label="过滤数据(value=0)"
click="toggleFilter();" />
</mx:ApplicationControlBar>
<mx:DataGrid id="dataGrid" dataProvider="{arrColl}" rowCount="5"
verticalScrollPolicy="on" width="300">
<mx:columns>
<mx:DataGridColumn dataField="name" />
<mx:DataGridColumn dataField="value"
labelFunction="value_labelFunc" />
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>


集合的关联这里不再赘述,有几点需要注意的地方。

1、AS中使用了toFixed(2)方法对数据进行格式化操作。

2、使用了filterFunction函数完成了判断Value是否等于0的任务。

private function processFilter(item:Object):Boolean
{
return parseFloat(item.value) == 0;
}


3、使用refresh()方法进行刷新数据列。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐