2010-06-09 95 views
0

我有一个带有日期名称列的数据表。我想按日期名称排列此列,例如如果我[星期五,星期一,星期日]排序应该返回[星期一,星期五,星期日](升序)和[星期日,星期五,星期一](降序)。按日期名称对数据表列进行排序

我试图使用自定义排序,但我无法表示我的自定义顺序。

您有什么想法吗?

谢谢

回答

1

我找到了我的问题的解决方案。我创建了一个带有数字值的隐藏列。排序将基于此列。这是自定义排序功能

// Custom function to sort Column by another Column 
    var mysortFunction = function(a, b, desc) { 
      // Deal with empty values 
      if(!YAHOO.lang.isValue(a)) { 
       return (!YAHOO.lang.isValue(b)) ? 0 : 1; 
      } else if(!YAHOO.lang.isValue(b)) { 
       return -1; 
      } 

      // compare column values 
      var comp = YAHOO.util.Sort.compare; 
      var compState = comp(a.getData("myhiddenColumn"), b.getData("myhiddenColumn"), desc); 
      return compState; 
    }; 

和列DEFS:

var myColumnDefs = [ 
      { key: "A", sortable:true,hidden:true }, 
      { key: "columnToSort",label:"ABC", sortable:true, sortOptions: { sortFunction: mysortFunction } 
    { key: "myhiddenColumn", sortable:true, hidden:true } 
    } 

]; 

希望这有助于

相关问题