2014-02-12 3 views
0

Я пытаюсь изменить номера столбцов моих Datatables после того, как я запустил таблицу:Каков правильный формат для изменения столбца Datatables с использованием массива?

где retitle - это массив (т. Е. Массив длиной 4), а c - длина retitle (т.е. 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} 
    ] 

}); 

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

ответ

0

Я решил вопрос, изменяя способ инициализации таблицы в 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 все равно за вашу помощь.

0

вы можете изменить настройки так:

var oTable; 

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

    oTable = $('#table_id').dataTable(); 
}); 
+0

Спасибо за ответ. Если я хочу изменить «aTargets», что мне писать? Согласно этой ссылке: https: //datatables.net/forums/discussion/11451/changing-aocolumndefs-parameters-of-a-present-table/p1, невозможно изменить aoColumnDefs, не так ли? –

+0

хорошо, тогда это то, что вы могли бы сделать; уничтожить таблицу с помощью bDestroy и воссоздать таблицу с новыми параметрами инициализации. –

+0

Он может работать, но у меня все еще есть проблема при форматировании «aoColumnDefs». Я отредактировал вопрос и изменил код выше. Не могли бы вы посмотреть, пожалуйста? –

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