سؤال

I'm trying to change the column numbers of my Datatables after I initial the table:

where retitle is an array (i.e. an array of length 4) and c is the length of retitle (i.e. c=4), which is previously defined.

   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}
  ]

 }); 

But it just doesn't work.

هل كانت مفيدة؟

المحلول 2

I solved the question by changing the way of initialising table in HTML instead of altering the settings in Datatables.

What I did is: first, remove the existing table, as well as the table wrapper!

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

Then initialise a new table. and set the format of header/body according to your data:

 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>";

Finally, append your table to your webpage. Here I attached it to my tab:

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

By the way, thank you, @Volkan Ulukut all the same for your help.

نصائح أخرى

you can change the settings like this:

var oTable;

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

    oTable = $('#table_id').dataTable();
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top