2014-12-21 16 views
6

robie przetwarzanie po stronie serwera przy użyciu jQuery datatable.My kod DataTable jest jak poniżej:wyeksportować wszystkie dane tabeli przy użyciu DataTables jquery 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; 
     } 
    } 
}); 

Ale kiedy mogę eksportować dane, TableTools eksportuje dane w bieżącej strony. Nie ładuje wszystkich danych w tabeli.

Odpowiedz

1

Plugin DataTables jest wielki i wszystko, ale tabela podstawowej/wiersze tabeli są nadal istnieje w DOM i można przejść tę samą drogę, którą przechodzić dowolną tabelę HTML:

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

nie mogłem aby łatwo znaleźć jakąkolwiek dokumentację na temat zaimportowanego wtyczki odpowiedniego eksportu, wszystkie przykłady eksportu wydają się skupiać na Excelu/CSV zapisanym na dysku lokalnym.

+0

gdzie można wdrożyć powyższy kod? W dataTable.js lub bezpośredni plik źródłowy? – PoliDev

+1

W dowolnym pliku js dołączonym do aplikacji internetowej. Możesz spakować to jako metodę i dodać ją do prototypu konstruktora Dataatable w dataTable.js, ale to chyba przesada. Zależy od tego, jak bardzo jesteś purystą z OO. –

Powiązane problemy