2016-03-31 4 views
0

Я хочу изменить количество столбцов в dataTable, используя параметр JSON, полученный Ajax при вызове dataTable.Изменить данныеТаблицы столбцов с помощью вызова ajax

Так что я попытался это:

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, 
     ... 

, но я обнаружил, что массив столбцов используется DataTable ДО DATASRC, поэтому, когда функция изменяет массив столбцов, это слишком поздно.

Как я могу сделать это без второго вызова Ajax для параметра? Просто используя вызов dataTable.

ответ

1

Инициируйте свою таблицу данных в обратном вызове ajax.

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

Datatable as draw() метод, который принуждает рисовать таблицу на веб-странице.

Вы также можете сделать это с обещаниями.

+0

Очевидно, я не думал, спасибо! – Hector

Смежные вопросы