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>";
}