2014-12-21 14 views
6

Ich serverseitige Verarbeitung zu tun jquery datatable.My Datentabelle Code ist wie folgt:Export alle Tabellendaten mit Jquery Tables TableTools

$('#DataGrid').dataTable({ 
    destroy: true, 
    "processing": true, 
    searching: false, 
    serverSide: true, 
    "scrollX": true, 
    "bLengthChange": false, 
    "iDisplayLength": pageSize, 
    "bInfo": true, 
    //stateSave: true, 
    order: [ 
     [0, "desc"] 
    ], 
    "aoColumnDefs": [{ 
     'bSortable': false, 
     'aTargets': [(lastColumn - 1)] 
    }], 
    "dom": 'T<"clear">lfrtip', 
    "tableTools": { 
     "aButtons": [ 
      "copy", 
      "csv", "xls", "pdf" 
     ], 
     "sSwfPath": $("body").attr("data-project-root") + "Content/TableTools-2.2.3/swf/copy_csv_xls_pdf.swf" 

    }, 
    ajax: { 
     url: 'StudentProgramListForIdCardResult', 
     type: 'POST', 
     data: function(d) { 
      d.programId = programId; 
      d.sessionId = sessionId; 
      d.branchId = branchId; 
      d.campusId = campusId; 
      d.batchName = batchName; 
      d.course = course; 
      if ($('#paymentStatus').val() > 0) { 
       d.paymentStatus = $('#paymentStatus').val(); 
      } else { 
       d.paymentStatus = paymentStatus; 
      } 
      if ($('#imageStatus').val() > 0) { 
       d.imageStatus = $('#imageStatus').val(); 
       $('#imageStatus').val(); 
      } else { 

       d.imageStatus = imageStatus; 

      } 
      if ($('#printingStatus').val() > 0) { 
       d.printingStatus = $('#printingStatus').val(); 
      } else { 
       d.printingStatus = printingStatus; 
      } 
      d.informationViewList = informationViewList; 
      d.batchDays = batchDays; 
      d.batchTime = batchTime; 
     } 
    } 
}); 

Aber wenn ich Daten exportieren, wird TableTools die Daten in der aktuellen Seite zu exportieren. Es lädt nicht alle Daten in der Tabelle.

Antwort

1

Das Tables Plugin ist groß und alle, aber die zugrunde liegenden Tabelle/Tabellenzeilen gibt es noch in der DOM und kann auf die gleiche Weise verfahren werden Sie jede HTML-Tabelle durchlaufen würde:

//foo will be a nodeList of all the tr's in the table 
var foo = document.getElementById('#DataGrid').querySelectorAll('tr'); 

var i = 0, string = '', len = foo.length, row, cells; 

for (;i<len; ++i) { 
    row = foo[i]; 
    cells = row.children; //td's 
    string += 'however you want to package it for your ajax'; 
} 

$.post({url: 'myServerScript', {data: string}, callback}); 

Ich war nicht in der Lage Um leicht zu finden, Dokumentation über einen Plugin-implementierten entsprechenden Export, scheinen alle Export-Beispiele auf Excel/CSV auf dem lokalen Laufwerk gespeichert zu konzentrieren.

+0

wo den obigen Code zu implementieren? In dataTable.js oder direkte Quelldatei? – PoliDev

+1

In welcher js-Datei Sie Ihre Webanwendung anhängen. Sie könnten dies als eine Methode packen und sie dem Prototyp des Datatable-Konstruktors in dataTable.js hinzufügen, aber das ist wohl übertrieben. Hängt davon ab, wie viel OO-Purist du gerade bist. –

Verwandte Themen