2017-01-31 4 views
0

Ich habe ein Problem, wenn ich versuche, "All" Datensätze in meinem Datatable zu zeigen. Ich benutze die Pipelining Funktion mit meiner Datentabellen und (mit Ausnahme der Pipeline) das ist mein JS:Datatables fehlende letzte Zeile

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

Mit „Alle“ in der Länge Menü ausgewählt, ich Showing 1 to 337 of 338 entries.

Ich habe bereits meine Remote-Quelle überprüft und alle 338 Datensätze werden korrekt gesendet, aber das allerletzte Element des Array 'Daten' wird nicht in der Frontend-Tabelle angezeigt.

Wenn ich bPaginate: false einstelle, werden alle Einträge korrekt angezeigt.

Irgendeine Idee?

Antwort

0

Wenn Sie den Beispielcode Pipelining von Datatable verwenden, liegt darin ein Fehler vor. Sie müssen diese Zeilen

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

und entfernen Sie die gleich

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