2016-03-31 8 views
0

Ich möchte die Anzahl der Spalten in dataTable mithilfe eines JSON-Parameters ändern, der von Ajax empfangen wurde, als die dataTable den Aufruf tätigte.Ändern der Anzahl der dataTable-Spalten mit dem Ajax-Aufruf

So habe ich versucht, dies:

var columns = [ 
     {data: "data1"}, 
     {data: "data2"}, 
     {data: "data3"} 
    ]; 

$("#table").dataTable({ 
     ajax: { 
      url: 'controller/get_table', 
      dataSrc: function (json) { 
       if (json.param) { 
        columns.push({data: "data4"}); 
        columns.push({data: "data5"}); 
       } 
       return json.data; 
      } 
     }, 
     columns: columns, 
     ... 

aber ich habe festgestellt, dass die Anordnung von Spalten von Datatable VOR dem DATASRC verwendet wird, so dass, wenn die Funktion der Spalte Array dahingehend ändert, ist es zu spät.

Wie kann ich es tun, ohne einen zweiten Ajax-Aufruf für den Param? Verwenden Sie einfach den DataTable-Aufruf.

Antwort

1

Initiieren Sie Ihre DataTable im Ajax Callback.

$.ajax({ 
//get your json params 
}).done(function(response){ 
    $("#table").dataTable({response}); 
}); 

Datatable als eine draw() Methode, die zwingen, die Tabelle auf der Webseite zu zeichnen.

Sie können es auch mit Versprechen tun.

+0

Offensichtlich habe ich nicht gedacht, danke! – Hector

Verwandte Themen