2016-05-04 6 views
2

То, что я хочу достичь, - отобразить таблицу и после выбора строки сделать возможным редактировать или удалять строку (сделать правильный запрос), поэтому мне нужен первичный ключ, который я не хочу отображать. Моя таблица выглядит следующим образом:Получить идентификатор строки в строке таблицы после выбора строки и нажатия кнопки в datatables

<table id='documents_d' class='display'> 
    <thead> 
     <tr><th>title 1</th><th>title 2</th><th>title 3</th> 
    </thead> 
    <tbody> 
     <tr data-id='1'> 
      <td>content</td> 
      <td>content</td> 
      <td>content</td> 
     <tr data-id='2'> 
      <td>content</td> 
      <td>content</td> 
      <td>content</td></tr> 
    </tbody> 
</table> 

Я использую следующий скрипт для получения DataTables работы:

<script> 
    $(document).ready(function() { 
     var documents_d = $('#documents_d').DataTable({ 
      paging: true, 
      dom: 'Blfrtip', 
      colReorder: true, 
      select: {style: 'single'}, 
      rowId: 'Writer', 
      buttons: [ 
       'colvis', 
       'excelHtml5', 
       { 
        text: 'Edit', 
        action: function() { 
         alert(documents_d.row('.selected').data()); 
        } 
       } 
      ] 
     }); 
    }); 
</script> 

Вместо предупреждения я хочу, чтобы запустить функцию как editDocument ($ DocId). Поэтому сначала я хочу выбрать строку (это нормально работает), и после нажатия «Изменить» я хочу получить «идентификатор данных» и запустить функцию. Я пробовал:

documents_d.row('.selected').data("data-id") 

, но это дало бы мне ошибку:

DataTables warning: table id=documents_d - Requested unknown parameter '7' for row 1, column 7. For more information about this error, please see http://datatables.net/tn/4

ответ

1

Вы, наверное, хотите:

$(documents_d.row('.selected').node()).data('id'); 

Однако, есть еще один способ:

https://datatables.net/reference/option/rowId

It can often be useful to have a id attribute on each tr element in a DataTable for row selection and data source identification, particularly when using events.

Затем вы можете использовать:

documents_d.row('.selected').id(); 
Смежные вопросы