jQuery DataTables - 按对象排序 属性
jQuery DataTables - Sort by object's property
我的 table 的其中一个列需要根据多个对象的属性呈现 link。它的简化定义如下所示:
columns: [{
"data": "obj",
"render": function(data, type, row) {
return "<a href='" + obj.x + "'>" + obj.y + "</a>";
}
} ... ]
它确实按预期呈现,但我也希望该列按 obj.y 属性 排序 table。这就是我的问题开始的地方,因为我发现机制有点混乱,但也许希望我只是遗漏了一些明显的解决方案。
我尝试将我的自定义排序添加到 jQuery.fn.dataTableExt.oSort,然后设置列的 sType,然后在呈现期间将 data-order/data-sort 属性添加到每个单元格,但这些都不起作用 -该列似乎仍然应用它的默认顺序。
有没有我应该尝试的推荐方法?
我使用的插件版本是 1.10.
如果我没理解错的话,render 函数有一个 type
参数,专门用于这种情况。
此参数采用 'display'、'sort'、'filter' 之类的值,表示数据呈现的上下文。
因此,在您的情况下,您应该检查 type === 'sort'
然后 return 您希望数据表在按该列排序时考虑的数据:
"render": function(data, type, row) {
if(type==='sort'){
return obj.y;
}
return "<a href='" + obj.x + "'>" + obj.y + "</a>";
}
我的 table 的其中一个列需要根据多个对象的属性呈现 link。它的简化定义如下所示:
columns: [{
"data": "obj",
"render": function(data, type, row) {
return "<a href='" + obj.x + "'>" + obj.y + "</a>";
}
} ... ]
它确实按预期呈现,但我也希望该列按 obj.y 属性 排序 table。这就是我的问题开始的地方,因为我发现机制有点混乱,但也许希望我只是遗漏了一些明显的解决方案。
我尝试将我的自定义排序添加到 jQuery.fn.dataTableExt.oSort,然后设置列的 sType,然后在呈现期间将 data-order/data-sort 属性添加到每个单元格,但这些都不起作用 -该列似乎仍然应用它的默认顺序。
有没有我应该尝试的推荐方法? 我使用的插件版本是 1.10.
如果我没理解错的话,render 函数有一个 type
参数,专门用于这种情况。
此参数采用 'display'、'sort'、'filter' 之类的值,表示数据呈现的上下文。
因此,在您的情况下,您应该检查 type === 'sort'
然后 return 您希望数据表在按该列排序时考虑的数据:
"render": function(data, type, row) {
if(type==='sort'){
return obj.y;
}
return "<a href='" + obj.x + "'>" + obj.y + "</a>";
}