我正在尝试在光滑的网格中实现自定义排序。我用这个作为引用https://github.com/mleibman/SlickGrid/wiki/DataView#sorting 。我想强制具有特定属性的行始终排序到网格的底部。 (我试图让 slickgrid 的工作示例在 jsfiddle.net 中工作,但我做不到。)我已经尝试过这个,但它不起作用。
var gridData =[
{ Id:1, Code: '232046', Depth2: 4000,},
{ Id:2, Code: '23247', Depth2: 2000 },
{ Id:3, Code: '12543', Depth2: 1500, rowoption_stickyorder: 1 }
];
grid.onSort.subscribe(function (e, args) {
var footerOrderProperty = 'rowoption_stickyorder';
var comparer = function (a, b) {
var result = (a[args.sortCol.field] > b[args.sortCol.field]) ? 1 : -1;
if (b[footerOrderProperty] != undefined || a[footerOrderProperty] != undefined)
result = -1;
return result;
}
dataview.sort(comparer, args.sortAsc);
});
我错过了什么?
最佳答案
if (b[footerOrderProperty] != undefined || a[footerOrderProperty] != undefined)
result = -1;
行不通。 假|| true
将一个具有该属性的对象/行放置在没有该属性的对象/行之上。
var bb = b[footerOrderProperty],
aa = a[footerOrderProperty];
if(aa && !bb){
result = 1;
}
else if(!aa && bb)
{
result = -1
}
注意:由于 mime 类型问题,Fiddle 在 Chrome 中无法工作,并且使资源 rawgithub
的常见解决方法似乎不起作用。
关于javascript - Slickgrid 自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917747/