Какой правильный формат для изменения столбца 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();
});