2017-01-31 4 views
0

У меня проблема, когда я пытаюсь показать записи «Все» в моем Datatable. я использую функцию Pipelining с моим DataTables и (за исключением трубопровода), это мой JS:Datatables missing last row

var dTable = $('#myTable').DataTable({ 
    "processing": true, 
    "serverSide": true, 
    "bSortCellsTop": true, 
    "autoWidth": false, 
    "aLengthMenu": [ 
     [25, 50, 100, 500, -1], 
     [25, 50, 100, 500, "All"] 
    ], 
    "iDisplayLength": 50, 
    "order": [[ 10, "asc" ]], 
    "dom": '<"top"<"dd-area">flp<"button-area">>rt<"bottom"flpi><"clear">', 
    "ajax": $.fn.dataTable.pipeline({ 
     url: '_handler.php?action='+action+'&cms='+curr_cms 
    }), 
    "columns": [ 
     /* columns defined here */ 
    ], 
    "columnDefs": [ 
     { 
      "targets": ['_all'], 
      "createdCell": function (td, cellData, rowData, row, col) { 
       $(td).attr('title', $titles[col]); 
      } 
     } 
    ], 
    "search": "Search:", 
    "zeroRecords": "No record found", 
    "fnInitComplete" : function(oSettings, json) { 
     /* code here */ 
    }, 
    "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
     /* code here */ 
    } 
}); 

С «Все» выбран в меню длины, я получаю Showing 1 to 337 of 338 entries.

Я уже проверил свой удаленный источник, и все 338 записей правильно отправлены, но последний элемент массива данных не отображается в таблице интерфейсов.

Если я установил bPaginate: false, все записи будут правильно показаны.

Любая идея?

ответ

0

, если вы используете пример кода Pipelining of Datatable, в нем есть ошибка. Вам нужно изменить эти строки

if (requestLength >= -1) { 
    json.data.splice(requestLength, json.data.length); 
} 

и удалить равное

if (requestLength > -1) { 
    json.data.splice(requestLength, json.data.length); 
}