首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex AdvancedDataGrid排序

Flex AdvancedDataGrid排序
EN

Stack Overflow用户
提问于 2010-07-15 07:24:41
回答 3查看 5.9K关注 0票数 3

我有一个由客户数据填充的AdvancedDataGrid。每个客户都有3个月产品(1,3,6),还有一个passed字段,指定客户是否符合任何月度产品的条件。

现在网格正在按字母顺序对客户数据进行排序,这是一件好事,但它不是对每月的产品进行排序,不是那么好。

dataProvider看起来就像这样。(我是按Funder分组)

代码语言:javascript
复制
{Funder:"Customer1", Product:"1 Month", Passed:"False"}, 
{Funder:"Customer1", Product:"3 Month", Passed:"True"}, 
{Funder:"Customer1", Product:"6 Month", Passed:"True"}, 
{Funder:"Customer2", Product:"1 Month", Passed:"False"}, 
{Funder:"Customer2", Product:"3 Month", Passed:"False"}, 
{Funder:"Customer2", Product:"6 Month", Passed:"False"}

我在网格中得到的结果如下所示

代码语言:javascript
复制
 ----------------------------------------
| Funder & Products   |  Product Passed  |
 ----------------------------------------
| Customer1           |                  |
|    6 Month          |  True            |
|    3 Month          |  True            |
|    1 Month          |  False           |
| Customer2           |                  |
|    3 Month          |  False           |
|    6 Month          |  False           |
|    1 Month          |  False           |
 ----------------------------------------

对产品的分类也有帮助吗?

编辑:

下面是我为网格使用的代码

代码语言:javascript
复制
<mx:AdvancedDataGrid id="myADG" 
                     width="100%" height="100%"
                     initialize="gc.refresh();"
                     folderClosedIcon="{null}"
                     folderOpenIcon="{null}"
                     defaultLeafIcon="{null}">

    <mx:dataProvider>
        <mx:GroupingCollection id="gc" source="{mCustomerData}">
            <mx:grouping>
                <mx:Grouping>
                    <mx:GroupingField name="Funder"/>
                </mx:Grouping>
            </mx:grouping>
        </mx:GroupingCollection>
    </mx:dataProvider>        

    <mx:columns>
        <mx:AdvancedDataGridColumn dataField="Product" 
                                   headerText="Funder &amp; Products"/>
        <mx:AdvancedDataGridColumn dataField="Passed"
                                   headerText="Product Passed"/>
        <mx:AdvancedDataGridColumn dataField="Passed"
                                   headerText="Product Failed"/>
    </mx:columns>
</mx:AdvancedDataGrid>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-15 13:40:23

好吧,所以我找到了一个对我有用的解决方案。下面是。

基本上,在creationComplete上,我调用了执行以下操作的sortData函数。

代码语言:javascript
复制
private function sortData():void {
    var sort:Sort = new Sort();
    var sortField:SortField = new SortField("Product");

    sort.fields = [sortField];        // Set 'Product' as the field to be sorted on
    myADG.dataProvider.sort = sort;   // Add the sort to the dataProvider of the dataGrid
    gc.source.refresh();              // Refresh the GroupCollection
}

希望能看到另一种方法,因为我不认为这是唯一的方法。

票数 3
EN

Stack Overflow用户

发布于 2010-07-15 10:47:48

为了所有的目的和目的,网格不对数据进行排序。它只显示按您指定的顺序提供的数据。dataProvider必须由您排序,并且网格将相应更新。

如果要通过单击列标题进行排序,请查看AdvancedDataGridColumn上的AdvancedDataGridColumn

如果您使用的是ArrayCollection或XMLListCollection,那么看看这个文档如何对其进行排序。

票数 1
EN

Stack Overflow用户

发布于 2012-09-18 12:52:42

同样的问题,并在Adobe的网站上找到了解决方案:

如何在AdvancedDataGrid中对组中的项进行排序

您可以编写比较函数并在分组字段中使用它。

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

https://stackoverflow.com/questions/3253330

复制
相关文章

相似问题

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