数据:
16.00小时 19.99小时 210.46小时 262.54小时 303.19小时 55.95小时 60.07小时 64.07小时 7.95小时
我想要的是什么:
我需要允许在koGrid中对这个数据王进行排序(通过单击网格标题,asc或desc排序来实现默认功能)。
问题:
数据是字符串,因此您可能会猜测它是如何排序的 - 通过字符代码。 我有什么选择?我发现一个列可以分配sortFn,我猜是这样的吗?
代码:
<span id="qwerty123"><li><a href="#"><i class='fa fa-link'></i> <span>Another Link</span></a></li></span>
小提琴: JSFiddle
答案 0 :(得分:2)
试着像这样修改你的代码
查看:
<div data-bind="koGrid: gridOptions"></div>
<强>视图模型:强>
vm = function () {
var self = this;
self.myData = ko.observable([{
hours: '113.02 hours'
}, {
hours: '13.01 hours'
}, {
hours: '303.01 hours'
}, {
hours: '33.01 hours'
}]);
self.gridOptions = {
data: self.myData,
columnDefs: [{
field: 'hours',
displayName: 'hours',
sortFn(a, b) {
if (!(a && b)) {
return -1;
}
var a1 = parseFloat(a.split(' ')[0]);
var b1 = parseFloat(b.split(' ')[0]);
if (a1 > b1) return 1;
if (a1 < b1) return -1;
if (a1 = b1) return 0;
}
}]
};
};
ko.applyBindings(new vm);
工作小提琴 here
参考文档 here