apache-flex - Flex AdvancedDataGrid 排序

标签 apache-flex sorting advanceddatagrid

我有一个由客户数据填充的 AdvancedDataGrid。每个客户有 3 个月度产品(1、3、6),还有一个 passed 字段指定客户是否有资格购买任何月度产品。

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

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

{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"}

然后我在网格中得到的结果看起来像这样

 ----------------------------------------
| Funder & Products   |  Product Passed  |
 ----------------------------------------
| Customer1           |                  |
|    6 Month          |  True            |
|    3 Month          |  True            |
|    1 Month          |  False           |
| Customer2           |                  |
|    3 Month          |  False           |
|    6 Month          |  False           |
|    1 Month          |  False           |
 ----------------------------------------

对产品分类有任何帮助吗?

编辑:

这是我用于网格的代码

<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>

最佳答案

好的,所以我找到了适合我的解决方案。如下。

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

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
}

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

关于apache-flex - Flex AdvancedDataGrid 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253330/

相关文章:

apache-flex - Apache Flex 4.9.0 和最低 Flash Player 版本

c++ - 错误 : Segmentation Fault (Core dumped) Arrays?

Swift 对数组进行排序并返回索引和元素的数组

apache-flex - 为AdvancedDataGrid设置替代颜色-一种用于父节点,另一种用于子节点

apache-flex - 在 AdvancedDataGrid 中设置一列的标题颜色不起作用

actionscript-3 - Adobe Air - 更新不兼容错误

html - 在 Flex 中是否有一种简单的方法可以以相对均匀的方式制作居中对齐的标签自动换行?

android - Adobe flex apk 文件在模拟器中不工作只显示黑屏如何解决这个问题?