Какой правильный формат для изменения столбца Datatables с помощью массива?

Я пытаюсь изменить номера столбцов моей таблицы данных после инициализации таблицы:

где retitle - это массив (т.е. массив длиной 4), а c - это длина заголовка (то есть c=4), которая была определена ранее.

   var atarget = [];
   var stitle = [];
   for(var i=0; i<c; i++){
     atarget[i] = i;
     stitle[i] = retitle[i];
   }

var oTable = $('#table_id').dataTable({
 "bPaginate": false,
 "bProcessing": true,
 "bLengthChange": true,
 "bFilter": true,
  "bRetrieve": true,
 "bInfo": false,
 "bAutoWidth": false,
 "bServerSide": true,
 "sDom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>',
 "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
 "sAjaxSource": './aadata.txt',
 "aoColumnDefs": [
    {"sTitle":stitle,"aTargets":aTarget}
  ]

 }); 

Но это просто не работает.

2 ответа

Решение

Я решил этот вопрос, изменив способ инициализации таблицы в HTML вместо изменения настроек в Datatables.

Я сделал следующее: сначала удалите существующую таблицу, а также обертку таблицы!

 $('#table_id').remove();
 $('#table_id_wrapper').remove();

Затем инициализируйте новую таблицу. и установите формат заголовка / тела в соответствии с вашими данными:

 var content = "<table id='table_id' class='display datatable' style='width:100%;'><thead>";
 content +='<tr>';


 re = re.substring(0,re.length-1);
 // alert(re);
 var retitle = re.split(",");
    alert (retitle + 'x');
   var c = retitle.length;
   var atarget = [];
   var stitle = [];
   for(var i=0; i<c; i++){
     atarget[i] = i;
     stitle[i] = retitle[i];
     content += '<td>' +retitle[i]  + '</td>';

   }

  content +=' </tr></thead>';
  content +='<tbody></tbody>'
  content += "</table>";

Наконец, добавьте свою таблицу к своей веб-странице. Здесь я прикрепил его к моей вкладке:

  $('#tab3').append(content);

Кстати, спасибо, @Volkan Ulukut, все равно за вашу помощь.

Вы можете изменить настройки следующим образом:

var oTable;

$(document).ready(function() {
    $('.something').click( function () {
        oTable._iDisplayLength = 50;
        oTable.fnDraw();
    });

    oTable = $('#table_id').dataTable();
});
Другие вопросы по тегам