首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionScript3中的DataGridColumn排序

ActionScript3中的DataGridColumn排序
EN

Stack Overflow用户
提问于 2009-07-08 22:00:10
回答 2查看 526关注 0票数 0

有没有人可以告诉我在FLEX中我们可以把这种类型的数据排序到哪里?

数据--

第一季度2007年第二季度2006年第二季度当我排序时我需要这样的东西。

2006年第一季2006年第二季2007年第一季2007年第二季

当我应用默认排序时,这是DataGridColumn排序的一部分

2006年第一季2007年第一季2006年第二季2007年第二季

有没有人可以让我知道你有没有逻辑,或者你之前做过这样的事情。

谢谢,库马尔

EN

回答 2

Stack Overflow用户

发布于 2009-07-08 22:10:10

它们是弦吗...?您可以像这样定义自己的排序函数:sortCompareFunction

代码语言:javascript
复制
dataGridColumn.sortCompareFunction = compareQuarters;

private function compareQuarters(lhs:Object, rhs:Object):int
{
    var lhsArray:Array = lhs.split(" ");
    var rhsArray:Array = rhs.split(" ");
    if(lhsArray[2] > rhsArray[2])
    {
        return -1;
    }
    if(lhsArray[2] < rhsArray[2])
    {
        return 1;
    }
    if(lhsArray[0] > rhsArray[0])
    {
        return -1;
    }
    if(lhsArray[0] < rhsArray[0])
    {
        return 1;
    }
    return 0;
}
票数 2
EN

Stack Overflow用户

发布于 2009-07-08 22:06:07

您将需要使用自定义排序函数,即:

代码语言:javascript
复制
<mx:DataGridColumn dataField="quarter" headerText="Quarter" width="100"
 sortCompareFunction="sortQuarter"/>

public function sortQuarter(obj1:Object, obj2:Object):int{
   //where obj1 and obj2 are your data objects containing the quarter strings, you'll need to parse them to compare to see which one is greater.
   if(obj1 < obj2){
      return -1;
   }

   if(obj1 == obj2){
      return 0;
   }


   if(obj1 > obj2){
      return 1;
   }
}

我建议只断开季度字符串的最后4个字符来比较年份,然后如果它们相同,则比较每个字符串的第一个字符。

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

https://stackoverflow.com/questions/1100757

复制
相关文章

相似问题

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