【发布时间】:2010-06-09 08:59:00
【问题描述】:
我有一个包含日期名称列的数据表。我想按日期名称对这一列进行排序,例如如果我有 [Friday, Monday,Sunday] 排序应该返回 [Monday ,Friday,Sunday](升序)和 [Sunday,Friday,Monday](降序)。
我尝试使用自定义排序,但无法表示我的自定义顺序。
你有什么想法吗?
谢谢
【问题讨论】:
标签: sorting yui-datatable
我有一个包含日期名称列的数据表。我想按日期名称对这一列进行排序,例如如果我有 [Friday, Monday,Sunday] 排序应该返回 [Monday ,Friday,Sunday](升序)和 [Sunday,Friday,Monday](降序)。
我尝试使用自定义排序,但无法表示我的自定义顺序。
你有什么想法吗?
谢谢
【问题讨论】:
标签: sorting yui-datatable
我找到了解决问题的方法。我创建了一个带有数值的隐藏列。排序将基于此列。这是自定义排序功能
// 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;
};
还有列定义:
var myColumnDefs = [
{ key: "A", sortable:true,hidden:true },
{ key: "columnToSort",label:"ABC", sortable:true, sortOptions: { sortFunction: mysortFunction }
{ key: "myhiddenColumn", sortable:true, hidden:true }
}
];
希望对你有帮助
【讨论】: