Как динамически изменить заголовок столбца плагина dataTable jQuery?

Я хотел бы изменить заголовок столбца my datatable, сгенерированного плагином jQuery Datatable

знаете ли вы, Могу ли я сделать что-то вроде этого:

 table = $('#example').DataTable({
        "data": source_dataTable,
        "columnDefs": defs,

    "dom": 't<"top"f>rt<"bottom"lpi><"clear">',
});
// WHAT I WANT TO DO:
    table.column(0).title.text("new title for the column 0")

?

это делает html первой строкой, как это:

 <table id="example" class="row-border hover dataTable no-footer" role="grid" aria-describedby="example_info" style="width: 1140px;">
   <thead>
       <tr role="row">
              <th class="sorting" tabindex="0" aria-controls="example" rowspan="1" colspan="1" aria-label="S&amp;#233;lectionn&amp;#233;: activer pour trier la colonne par ordre croissant" style="width: 94px;">Sélectionné</th>

               <th class="sorting" tabindex="0" aria-controls="example" rowspan="1" colspan="1" aria-label="Anglais : activer pour 

                  trier la colonne par ordre croissant" style="width: 

62px;">Anglais </th>

</tr>
</thead>
 </table>

...

в обычной таблице код ниже работает , но для datatable, отображаемого плагином jQuery, он не:

$('#example tr:eq(0) th:eq(0)').text("Text update by code");

может быть, есть метод API или другой способ dom?

3 ответов


Я нашел решение, которое действительно динамически

$(table.column(1).header()).text('My title');

использовать ниже код . проверка демо

если первый tr с td

  $('table tr:eq(0) td:eq(0)').text("Text update by code");

если первый tr с th

  $('table tr:eq(0) th:eq(0)').text("Text update by code");

при использовании процесса на стороне службы или хотите сделать некоторые действия после загрузки таблицы данных все данные использовать Draw событие .

Draw событие - уволен, как только таблица завершила ничью

пример

 $('#example').dataTable();

 $('#example').on( 'draw.dt', function () {
   console.log( 'Redraw occurred at: '+new Date().getTime() );
   $('#example tr:eq(0) th:eq(0)').text("Text update by code");
 } );

С помощью обратного вызова.
drawCallback


можно так :

"columns": [{ sTitle: "Column1"},{ sTitle: "Column2"}]