2017-02-21 13 views
0

Справочная информация.Проблемы установки rowId при использовании jquery datatables

У меня есть jquery datatable, который отлично работает ... за исключением того факта, что после того, как моя страница/таблица визуализирует ... ему не хватает идентификатора строки. мне нужно каждую строку, чтобы выглядеть примерно так:

<tr id=10100... > ... </tr> 

код

$(document).ready(function() { 
    var selected = []; 
    $('#users').DataTable({ 
     "processing": false, 
     "serverSide": true, 
     "ordering": false, 
     aLengthMenu: [ 
      [10, 25, 50, 100, "-1"], //controls the "Show X entries" drop down on gui 
      [10, 25, 50, 100, "All"] 
     ], 
     "ajax": "/cgi-bin/mvspaging_list", 
     rowId:'pn', 
     "rowCallback": function(row, data) { 
      if ($.inArray(data.DT_RowId, selected) !== -1) { 
       $(row).addClass('selected'); 
      } 
     }, 
    "columns": 
    [  
     //{ "data": "id" ,"searchable":false}, 
     { "data": "pn", "searchable":true }, 
     { "data": "fname",defaultContent:'', "searchable":true}, 
     { "data": "lname",defaultContent:'',"searchable":true}, 
     { "data": "grp_name",defaultContent:'',"searchable":true}, 
     { "data": "description",defaultContent:'',"searchable":true},    
     { "mRender": function (data, type, row) {   
      if (row.grp == 0) { 
       action = '<a href=pndetails.html?pn=' + row.pn +'>Details</a>'; 
       var fullname= encodeURI(row.fname + " " + row.lname); 
       action = action + '&nbsp;|&nbsp;' + '<a href="#" onclick=delpn(' + row.pn + ',"' + fullname + '",false)>Delete</a>'; 
       return action; 
      } else { 
       var groupname= encodeURI(row.grp_name); 
       action = '<a href=group_details.html?pn=' + row.pn +'>Details</a>'; 
       action = action + '&nbsp;|&nbsp;' + '<a href="#" onclick=delpn(' + row.pn + ',"' + groupname + '",true)>Delete</a>'; 
       return action;  
      } 
      } 
     } 
    ] 
    }); 
}); 

В настоящее время, это создает HTML-строки, как это:

<tr role="row" class="odd"> 
     <td>10100</td> 
     <td>Devin</td> 
     <td>Daster</td> 
     <td></td> 
     <td></td> 
     <td><a href="pndetails.html?pn=10100">Details</a>&nbsp;|&nbsp;<a href="#" onclick="delpn(10100,&quot;Devin%20Daster&quot;,false)">Delete</a></td> 
</tr> 

Я думал, указав

rowId:'pn', 

сделал бы трюк, но я думаю, нет.

Любые предложения по поводу того, что мне не хватает, будут оценены по достоинству. В настоящее время я использую это в качестве ссылки: https://datatables.net/reference/option/rowId

ответ

1

Я добавил/изменил свой обратный вызов, как так:

"rowCallback": function(row, data) { 
     console.log(data); 
     $(row).attr('id', data.pn); 
    },