首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用复选框flex对两列数据网格进行排序

用复选框flex对两列数据网格进行排序
EN

Stack Overflow用户
提问于 2015-01-21 09:43:11
回答 1查看 485关注 0票数 0

在flex应用程序中,DataGrid中有5-6列。

代码语言:javascript
复制
<s:DataGrid id="recordGrid" dataProvider="{dxList}">

网格:

代码语言:javascript
复制
Selected  Name   field2   field2   field3

在第一列中有CheckBox。

第二列包含名称。等等..。

当前没有选中复选框。现在,用户随机选择多个复选框并单击标头(选中)。然后,它将首先排序复选框。(我做了)。

但是,我的问题是第二个字段也是排序alphabetically.

所有选定的唱片都以字母顺序排在首位。然后,在未检查的记录将显示按字母排序。

我按照选中的复选框对记录进行排序:

代码语言:javascript
复制
<s:GridColumn dataField="selected" sortDescending="true"> 

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-01-29 01:06:22

确保您使用的是dataProvider的排序api。

示例摘自:http://www.java2s.com/Code/Flex/Grid/SortingaDataGridonmultiplecolumns.htm

代码语言:javascript
复制
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    initialize="initDP();" width="550" height="400">
    <mx:Script>

        import mx.events.DataGridEvent;
        import mx.collections.*;
        private var myDPColl:ArrayCollection;

        [Bindable]
        private var sortA:Sort;
        private var sortByColumn1:SortField;
        private var sortByColumn2:SortField;
        private var sortByColumn3:SortField;
        private var myDP:Array = [{Column1:'A', Column2:'AA',Column3:11.99, Column4: true},
                                  {Column1:'B', Column2:'BB',Column3:10.99, Column4: false},
                                  {Column1:'C', Column2:'CC',Column3:12.99, Column4: true},
                                  {Column1:'D', Column2:'VV',Column3:11.99, Column4: false},
                                  {Column1:'E', Column2:'EE',Column3:11.99, Column4: true},
                                  {Column1:'F', Column2:'FF',Column3:14.99, Column4: true},
                                  {Column1:'G', Column2:'GG',Column3:5.99,  Column4: true}
        ];
        private function initDP():void {
            myDPColl = new ArrayCollection(myDP);
            sortA = new Sort();
            sortByColumn1 = new SortField("Column1", true, true);
            sortByColumn2 = new SortField("Column2", true);
            sortByColumn3 = new SortField("Column3", true);
            sortA.fields=[sortByColumn1, sortByColumn2];
            myDPColl.sort=sortA;
            myDPColl.refresh();
            myGrid.dataProvider = myDPColl;
            myGrid.rowCount = myDPColl.length +1;
        }
        private function headRelEvt(event:DataGridEvent):void {
            sortA.fields[2] = sortA.fields[1];
            sortA.fields[1] = sortA.fields[0];
            if (event.columnIndex==0) {
                sortA.fields[0] = sortByColumn1;
            } else if (event.columnIndex==1) {
                sortA.fields[0] = sortByColumn2;
            } else {
                sortA.fields[0] = sortByColumn3;}
                myDPColl.sort = sortA;
                myDPColl.refresh();
                event.preventDefault();
        }

    </mx:Script>
    <mx:DataGrid id="myGrid" width="100%" headerRelease="headRelEvt(event);">
        <mx:columns>
            <mx:DataGridColumn minWidth="120" dataField="Column1"/>
            <mx:DataGridColumn minWidth="200" dataField="Column2"/>
            <mx:DataGridColumn width="75" dataField="Column3"/>
        </mx:columns>
    </mx:DataGrid>

</mx:Application>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28063915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档