2016-07-25 10 views
0

Die jQuery DataTables reference zeigt ein Beispiel für die Einstellung der Option rowId zu einer Spalte aus der Datenquelle (Server-Seite). Diese Einstellung wird für die Erweiterung "select" und retaining row selection on Ajax reload verwendet.Wie generiert man jQuery DataTables rowId clientseitig?

Gibt es eine Möglichkeit, den Zeilenbezeichnerwert 1) clientseitig oder 2) als Kombination mehrerer Spalten aus der Datenquelle zu generieren?

Beispiel Datenquelle:

{ 
    "data": [ 
    { 
     "aid": 5421, 
     "bid": 4502, 
     "name": "John Smith" 
    } 
} 

Code:

$("#datatable").DataTable({ 
    select: true, 
    //rowId: "aid" each row ID is the value of the "aid" column 
    //  e.g., <tr id="5421"> 

    //rowId: 0 each row ID is the value of the 0-indexed column 
    //  e.g., <tr id="5421"> (same as above) 

    rowId: [0, 1] // How? row ID combined value of 2+ columns 
        // e.g. <tr id="5421-4502"> 

    rowId: "random" // How? random generated client-side ID 
        // e.g., <tr id="id34e04"> 
}); 

Antwort

1

Anscheinend gibt es keine Möglichkeit, dies direkt zu tun. Zur Umgehung des Problems können Sie die Option ajax.dataSrc und/oder die rowId Option verwenden:

// Example using dataSrc option to manipulate data: 
$("#example").dataTable({ 
    ajax: { 
     url: "data.json", 
     dataSrc: function (json) { 
      for (var i = 0, ien = json.data.length; i < ien; i++) { 
       json.data[i][0] = '<a href="' + json.data[i][0] + '">View Message</a>'; 
      } 
     } 
    } 
});