2016-07-25 1 views
0

Les DataTables jQuery reference montrent un exemple de définition de l'option rowId sur une colonne de la source de données (côté serveur). Ce paramètre est utilisé pour l'extension "select" et retaining row selection on Ajax reload.Comment générer le côté client rowId jQuery DataTables?

Y a-t-il un moyen de générer la valeur de l'identificateur de ligne 1) côté client ou 2) en tant que combinaison de plusieurs colonnes à partir de la source de données?

Exemple source de données:

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

Répondre

1

Apparemment, il n'y a aucun moyen de le faire directement. Pour contourner le problème, vous pouvez utiliser l'option ajax.dataSrc et/ou l'option rowId:

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