`
i5land
  • 浏览: 50326 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

flex,datagrid数值列排序

    博客分类:
  • flex
阅读更多
最近使用flex的datagrid发现一问题,如果该dataGrid有一列是数值列,点击表头排序的时候希望它按数字来排的。可是它默认是排序方式按字符串排序的。
解决问题的方式很简单可以自定义排序方法,然后和dataGrid的该列的sortCompareFunction绑定。
代码如下:
<?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.rpc.http.mxml.HTTPService;
    import flash.events.*;
    import mx.rpc.events.ResultEvent;
    
    public var interfaceXmlList:XMLList;
   public function init(){
    
   var http_refreshmap:HTTPService=new HTTPService();
   http_refreshmap.url="c://switch.xml";
   http_refreshmap.resultFormat="xml";
   http_refreshmap.useProxy=false;
   http_refreshmap.addEventListener(ResultEvent.RESULT,refreshMap);
   http_refreshmap.send();
   }
   //安数值大小排序
   public function sortcompare(obj1:Object,obj2:Object):int
   {
    
                        var num1:Number=Number(obj1.@send.toString());
                        trace(num1);
                          var num2:Number=Number(obj2.@send.toString());
                         trace(num2);
                        if(num1>num2){
                                return 1;
                        }else if(num1<num2){
                                return -1;
                        }else{
                                return 0;
                        }
            }
   public function refreshMap(e:ResultEvent):void{
    var dataXml:XML=(XML)(e.result);
    
    var interfacesAttr:XML=new XML();
    interfacesAttr=XML(dataXml["interfaces"]); 
    
    interfaceXmlList=interfacesAttr.children();
    trace(interfaceXmlList.toString());
      trace("2222");
    dgPosts.dataProvider=interfaceXmlList;
     }
   
  ]]>
 </mx:Script>

  <mx:DataGrid id="dgPosts" x="20" y="20" width="400">
   <mx:columns>
    <mx:DataGridColumn headerText="ss" dataField="@receive" width="200" sortable="true" sortCompareFunction="sortcompare"/>
    <mx:DataGridColumn headerText="分" dataField="@send" width="200" sortable="true" sortCompareFunction="sortcompare"/>
   </mx:columns>
  </mx:DataGrid> 
</mx:Application>



sortcompare为自定义的排序方法send在XML中是以属性的形式出现故加@.

分享到:
评论

相关推荐

    flex DataGrid中文字符排序类

    ### flex DataGrid中文字符排序类解析 在Flex开发过程中,数据展示与管理是十分重要的环节。其中DataGrid作为展示表格数据的重要组件之一,在处理多语言环境尤其是中文字符时,经常面临排序难题。本文将深入分析一...

    flex datagrid 表格 合计

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

    FLEX datagrid应用实例

    3. 自定义列渲染:为特定列设置自定义的渲染器,例如将数值格式化为货币或百分比。 4. 用户交互:实现选中行、编辑单元格、添加新行和删除行等功能,提升用户体验。 5. 分页功能:当数据量较大时,实现分页加载,...

    具有分页功能的flex的DataGrid

    2. **排序**:用户应能按列对数据进行升序或降序排序,这可以通过监听DataGrid的sort事件并处理排序逻辑来实现。 3. **自定义列渲染**:根据需求,我们可能需要对不同列的数据进行格式化或显示额外信息,例如,日期...

    flex 3 所有可视控件实例

    4. Datagrid:Datagrid 是一个可滚动的数据表格,可以显示多列数据,并支持排序、选择和编辑功能。 5. Horizontallist:Horizontallist 是一个水平滚动的列表,常用于展示一组水平排列的项目。 6. Hrule:Hrule ...

    flex有关的统计代码

    如果这个文件是子类,那么它可能添加了对特定列数据进行统计计算的能力,例如,对数值列进行求和或求平均。 `新建文本文档.txt`虽然没有明确的关联,但通常这种文本文件可能包含代码注释、算法解释或统计数据的描述...

    flex题目大全

    用最快速的方式给一个数值型数组按大小排序。 - **答案**:使用`sort()`方法。 ```as3 var numArray:Array = [4, 1, 3, 2]; numArray.sort(); ``` #### 16. 如何在数组里面查找元素? - **答案**:使用`...

    flex学习笔记,技巧学习

    - **`getPhoneLabel`**: 该函数用于自定义DataGrid中某一列的显示内容。例如,可以去除电话号码中的“-”字符,以实现更美观的显示效果。 ```actionscript private function getPhoneLabel(item:Object, column:...

    《Flex 3 组件实例与应用(2009版)》(PDF)

    DataGrid用于展示表格形式的数据,支持排序、过滤等功能,适用于数据展示和编辑的场景。 #### HorizontalList HorizontalList组件用于创建水平布局的项目列表,适合用于显示一系列水平排列的元素。 #### HRule ...

    Flex 3 组件实例与应用(2009版)

    DataGrid组件是一种用于显示表格数据的容器,支持排序、分页等功能。 ##### 5. **HorizontalList** HorizontalList组件可以水平排列其子项,适合制作水平滚动的列表或菜单。 ##### 6. **HRule** HRule组件用于...

Global site tag (gtag.js) - Google Analytics