`

Flex DataGrid 默认排序

    博客分类:
  • Flex
阅读更多
对于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 表头分组

    4. **自定义表头分组行为**:如果需要自定义分组的展开/折叠行为,或者更改默认的分组排序,可以通过监听`grouping`事件和设置`groupSortOrder`属性来实现。例如,可以添加一个事件监听器来改变默认的展开状态: ``...

    Flex DataGrid CheckBox 一个简单的全选

    在Flex开发中,DataGrid组件是一个非常常用的控件,它用于展示数据集合,并提供交互式操作,如排序、选择等。本示例聚焦于DataGrid中的CheckBox集成,特别是实现一个全选的功能。以下是对这个主题的详细解释: 一、...

    flex datagrid 表格 合计

    1. **DataGrid组件**:DataGrid是Flex中用于展示结构化数据的组件,它可以显示多列数据,并支持排序、选择和编辑等功能。在创建DataGrid时,我们需要指定数据源(通常是ArrayCollection或XMLListCollection)。 2. ...

    flex datagrid按数字顺序,字母顺序排序

    默认情况下,DataGrid并不支持直接的排序操作,但我们可以添加自定义排序功能。 在Flex中,我们可以通过监听DataGrid的headerRelease事件来实现排序。当用户点击列头时,这个事件会被触发。在事件处理函数中,我们...

    flex datagrid 分页控件源码

    Flex DataGrid是一款基于Adobe Flex技术的数据展示控件,它允许开发者在Web应用中展示大量数据并进行高效管理。在描述中提到的“flex datagrid pagination”是指DataGrid控件的一个重要特性——分页功能。在处理大...

    flex Datagrid checkbox全选

    当用户点击表头时,阻止默认的排序行为(因为我们只是处理全选操作,而不是排序),并将`selected`状态同步到所有行的checkbox。 3. `CheckBoxItemRenderer` 类: 这个类同样继承自`CheckBox`,用于渲染行中的...

    flex组件之DataGrid高级用法实例源码

    默认情况下,DataGrid根据数据提供者的数据类型进行升序或降序排序。 4. **选择和编辑** DataGrid支持行和单元格的选择,通过设置allowMultipleSelection属性来控制。同时,DataGrid可以配置为可编辑,通过...

    Flex中如何创建自定义排序DataGrid控件的例子

    然而,有时我们可能需要对DataGrid的默认排序功能进行自定义,以满足特定的业务需求。本教程将详细讲解如何在Flex中创建一个自定义排序的DataGrid控件。 首先,我们需要了解Flex DataGrid的基本结构。DataGrid控件...

    Flex-DataGrid源码及资料

    2. 鼠标双击可编辑:在默认情况下,Flex DataGrid的单元格是只读的。为了实现鼠标双击编辑,我们需要监听GridEvent.DOUBLE_CLICK事件,并在事件触发时开启相应的单元格或行的编辑模式。这可能涉及到设置...

    自己写的分页 flex datagrid 及一些其他东西 flexbuilder 项目源文件

    标题中的“自己写的分页 flex datagrid 及一些其他东西 flexbuilder 项目源文件”表明这是一个使用Adobe Flex Builder开发的项目,重点在于自定义的分页功能和数据网格(datagrid)组件。Flex是Adobe推出的一种用于...

    flex datagrid 改变

    在Flex中,DataGrid组件允许开发者以表格形式展示数据,并且可以实现诸如排序、分页、选择项等功能。然而,有时候默认的DataGrid功能可能无法满足特定项目的需求,这时就需要对其进行定制。例如,我们可能需要改变其...

    dataGrid中文排序

    在Flex中,`dataGrid`的排序通常通过`sortField`和`sortOrder`属性或`sort`方法来实现。然而,这些默认的排序机制并不适用于中文字符,因为它们基于Unicode编码,而不是中文的字典顺序。为了解决这个问题,我们需要...

    flex 三状态多选 自动分页DataGrid

    - Flex中的DataGrid默认只支持单选或全选,但通过自定义实现,可以扩展到三状态多选。这通常涉及到监听`itemClick`事件,维护一个记录选中状态的数组,并更新ItemRenderer的视觉反馈。 - 用户可以通过复选框或者...

    flex带复选框的datagrid

    DataGrid是Flex框架中用于展示表格数据的常用组件,它提供了丰富的数据绑定、排序、筛选等功能。但是,Flex原生的DataGrid并不直接支持带有复选框的列,因此开发者通常需要自定义组件来实现这一功能。 ### ...

    flex as actionscript datagrid 背景色 flash itemRenderer script iframe overrider 跳转到别的页面

    在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的组件,它允许用户进行交互式浏览和操作。ActionScript是Flex的核心编程语言,用于实现动态功能和交互。在标题和描述中提到的知识点主要涉及Flex ...

    Flex中DataGrid和其它控件使用

    在Flex开发中,DataGrid是常用的数据显示控件,它能够以表格的形式展示大量数据,并提供了丰富的功能,如排序、分页、筛选等。本篇文章将深入探讨Flex中的DataGrid及其与其他控件的协同使用。 首先,DataGrid的核心...

    flex 中datagrid 动态攺变行颜色

    Datagrid是MX组件库中的一个控件,它允许我们显示二维的数据集合,并支持排序、分页和选择功能。默认情况下,Datagrid会按照预设的样式显示每一行,但我们可以自定义样式来满足特殊需求。 要动态改变行颜色,主要...

    flex自定义datagrid

    然而,DataGrid默认的功能可能无法满足所有应用的需求,因此我们需要对其进行自定义以添加特定的功能,如复选框和分页。 1. **复选功能**:要在DataGrid中实现复选功能,我们通常需要创建一个自定义的ItemRenderer...

    Flex DataGrid 伪合并单元格思路及代码

    DataGrid组件能够显示大量的数据,并且还支持各种交互功能,如排序、过滤和选择等。 在处理表格数据时,有时需要将多个单元格显示为一个合并后的单元格,这称为“合并单元格”。合并单元格可以有效地展示数据,避免...

    mergeableDataGrid

    首先,Flex DataGrid是一种用于展示数据集合的强大组件,它提供了丰富的自定义选项,如列排序、分页和过滤。然而,原生的Flex DataGrid组件并不直接支持行合并,即在同一行中合并多个单元格,这对于显示具有层次结构...

Global site tag (gtag.js) - Google Analytics