数据表,如何对表进行排序,使特定行始终是第一行?

时间:2017-05-14 08:56:16

标签: javascript datatables

我有一个小问题。 我的数据表使用AJAX来收集我的表的行,表格排序在6日。列。

是否可以始终将特定行放在第一位?无论排序如何消失? 在初始排序后行是否改变位置无关紧要。

我的代码如下所示:

$('#servertable').DataTable( {
    "ajax": "/objects.php",
    "deferRender": true,
    "order": [[ 5, "desc" ]],
    "pageLength": 25,
    "columns": [
        { "data": "id" },
        { 
            "data": "hostname",
            "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
                $(nTd).html("<a href='/"+oData.url+"'>"+oData.hostname+"</a>");
             }
        },
        { "data": "version" },
        { "data": "country_cn" },
        { "data": "map_id" },
        { "data": "players" }
    ]
});

1 个答案:

答案 0 :(得分:0)

我认为这是其中一个案例,其中有一个自定义排序插件。我想你一直想把某些球员放在榜单的首位?如果你有一系列玩家名字应该保持在最顶层:

var players =  ['Yuri Berry', 'Vivian Harrell'];

然后你可以实现这样的排序插件:

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
  "players-on-top-asc": function( a, b ) {
    a = ~players.indexOf(a) ? new Array(255).join('a') : a;
    return a.localeCompare(b);
  },
  "players-on-top-desc": function( a, b ) {
    a = ~players.indexOf(a) ? new Array(255).join('z') : a;
    return b.localeCompare(a);    
  }
});

用法:

$('#servertable').DataTable( {
  ...
  "columns": [
    ...
    { "data": "players", type: "players-on-top" }
  ]
});

查看小型演示,查找第2列 - &gt;的 http://jsfiddle.net/ryfce85u/