2017-05-14 2 views
-1

Ich habe eine kleine Frage. Meine Datentabelle verwendet AJAX, um die Zeilen für meine Tabelle zu sammeln, die Tabelle nach 6. Säule.Datatables, wie man eine Tabelle so sortiert, dass eine bestimmte Zeile immer die erste Zeile ist?

Ist es möglich, immer zuerst eine bestimmte Zeile zu haben? Egal wie die Sortierung weg ist? Es spielt keine Rolle, ob die Zeile die Position nach der ersten Sortierung ändert.

Mein Code sieht wie folgt aus:

$('#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

denke ich Sie möchten [Sortierung mit absoluter Positionierung] implementieren (https://datatables.net/blog/2016-12-22) – mmushtaq

Antwort

0

Ich denke, dies ist einer der Fälle ist, wo eine benutzerdefinierte Plug-Sortierung an seinem Platz ist. Ich nehme an, Sie möchten die ganze Zeit über bestimmte Spieler an der Spitze der Liste haben? Wenn Sie eine Reihe von Spielernamen haben, die auf der Oberseite bleiben sollte:

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

dann können Sie eine Sortier Plugin wie dies umzusetzen:

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

Nutzung:

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

sehen ein kleine Demo, suche nach Spalte # 2 ->http://jsfiddle.net/ryfce85u/

Verwandte Themen