对于DataGrid的排序今天研究了一个下午,找了不少资料,终于找到了解决方案。发现DataGridColumn的属性sortCompareFunction和sortDescending是点击列头后的排序方式,而要确定默认情况下的排序方式是无效的。可以这样实现:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.SortField;
import mx.collections.Sort;
import mx.utils.ObjectUtil;
import mx.collections.ArrayCollection;
[Bindable]
private var adg:ArrayCollection = new ArrayCollection([{name:"张三华",age:15,sex:"男"},
{name:"李四国",age:45,sex:"男"},
{name:"王七花",age:24,sex:"女"},
{name:"赵华柳",age:17,sex:"女"},
{name:"田三华",age:33,sex:"男"},]);
private function init():void{
adg.sort = new Sort();
adg.sort.fields = [new SortField("age",false,true)];
adg.refresh();
dg.dataProvider = adg;
}
private function sortRanges(obj1:Object,obj2:Object):int{
var value1:Number = obj1.age;
var value2:Number = obj2.age;
if(value1 > value2 ){
return 1;
}else if(value1 < value2 ){
return -1;
}else{
return 0;
}
}
private function dataFilter():void{
if(adg.filterFunction == null){
adg.filterFunction = dataFilter2;
}
adg.refresh();
}
private function dataFilter2(item:Object):Boolean{
var bool:Boolean = true;
var it:String = item["name"];
var filter:String = ti.text;
if(!it || it.toLowerCase().indexOf(filter.toLowerCase()) < 0){
bool = false;
}
return bool;
}
private function sortCompare(obj1:Object,obj2:Object):int{
return ObjectUtil.numericCompare(obj1.age,obj2.age);
}
]]>
</mx:Script>
<mx:DataGrid id="dg" x="89" y="46" width="552" height="160">
<mx:columns>
<mx:DataGridColumn headerText="name" dataField="name"/>
<mx:DataGridColumn headerText="age" dataField="age"/>
<mx:DataGridColumn headerText="sex" dataField="sex" />
</mx:columns>
</mx:DataGrid>
<mx:Form>
<mx:FormItem>
<mx:TextInput id="ti" change="dataFilter()"/>
</mx:FormItem>
</mx:Form>
</mx:Application>
重点是黑体字部分,SortField第一个参数是排序的字段,第二个参数用来确定是否区分大小写,第三个参数表示是否按降序排列。
分享到:
相关推荐
Flex dataGrid 全选、反选 checkBox 不是很完善,但很有借鉴意义
flex DataGrid中文字符排序类 用法见 http://blog.sina.com.cn/s/blog_5fc933730100iign.html
flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net
flex datagrid 改变指定行的背景颜色,可直接使用
这个分页只与后台交互一次,然后将获得的集合在前台进行分页显示。
flex datagrid资料,下载的别人的,想弄点分数啊
成功的实现了,datagrid中嵌套checkbox实现全选的功能。分享代码供大家分享。项目为flex3。
NULL 博文链接:https://windmark.iteye.com/blog/1716422
flex 通过读取xml文件 实现动态DataGrid数据列表
flex Datagrid checkbox全选 Datagrid
在FLEX4中开发带有过滤功能的DATAGRID组件
FLEX的datagrid合计、平均值,很好的例子代码拿来就可以用
可以通过简单的一个标签实现一个表的checkbox功能,当然我才学了不到一个星期,可以在原来的基础上进行扩展,希望交流下我的邮箱是llaysz@163.com,如果大家把它变强大了记得给我发一份谢谢了
Flex DataGrid从XML文件中加载数据
Flex DataGrid 改变某一行的背景颜色,自定义的DataGrid组件
flex DataGrid复选框源码 flex DataGrid复选框源码 flex DataGrid复选框源码
对FLEX dataGrid 中文排序的代码以及字符集等
最近用到,flex datagrid最下面加上了合计功能,源代码,下载可导入直接运行
主要写了一个全选列,功能包括设置选择框的默认选择状态, 默认可用状态, 全选以及快速获取选中的值,呵呵!
将flex中datagrid组件中数据导出到excel表格中。思路很简单,利用as将datagrid中的数据解析出来,传到后台java服务端处理,即可保存为excel文件。