Как добавить класс в новую строку в jQuery datatables?

Как добавить класс в строку, которую я добавляю в datatable?

Если это невозможно, как я могу использовать fnRowCallback или fnDrawCallback для изменения класса?

oTable = $('#example').dataTable( {
  "bJQueryUI": true,
  "bSortClasses": false,
  "sDom":'T<"clear">',
  "sPaginationType": "full_numbers",
  "sDom": 'T<"clear"><"fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>t<"fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>',
  "fnRowCallback": function( nRow, aData, iDisplayIndex ) {

    var oSettings = oTable.fnSettings();
    oSettings.aoData[iDisplayIndex].nTr.className = "gradeX odd";
  }
});

Приведенный выше код дает мне ошибку.

вот как я добавляю строку:

oTable.fnAddData(arr);

Ответ 2

Вы можете добавить имя класса в свои данные, как описано в документации.

http://www.datatables.net/examples/server_side/ids.html

используйте DT_RowId для добавления идентификатора для любой строки
используйте DT_RowClass для добавления класса для любой строки
используйте DT_RowData​​strong > для добавления объекта данных html5 в любую строку

например:

"данные": [   {
    " DT_RowId ":" row_5 ",
     "first_name": "Airi ",
    "last_name ":" Satou ",
    "позиция ":" Бухгалтер ",
    "офис ":" Токио ",
    "start_date ":" 28 ноября 2008 ",
    "зарплата ":" 162 700 долларов "
  }]

Ответ 3

Попробуйте следующее:

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
            var id = aData[0];
            $(nRow).attr("id",id);
            if ( jQuery.inArray(aData[0], gaiSelected) != -1 )
            {
                $(nRow).addClass('row_selected');
            }
            return nRow;
}

Для добавления строки в datatable попробуйте этот код:

http://datatables.net/examples/api/add_row.html

/* Global var for counter */
var giCount = 1;

$(document).ready(function() {
    $('#example').dataTable();
} );

function fnClickAddRow() {
    $('#example').dataTable().fnAddData( [
        giCount+".1",
        giCount+".2",
        giCount+".3",
        giCount+".4" ] );

    giCount++;
}

Ответ 4

$(document).ready(function() {
    oTable = $('#table_id').dataTable( {"fnInitComplete": after_init} );
} );
function after_init(){
    $("#table_id tbody tr").addClass("gradeA");
}

Ответ 5

Это должно сделать трюк:

var r = t.row.add( [
    ....
] ).node();
$(r).css({"color":"red"});

Ответ 6

Официальная документация говорит:

var table = $('#example').DataTable();

table
    .rows.add( [
        new Pupil( 43 ),
        new Pupil( 67 ),
        new Pupil( 102 )
    ] )
    .draw()
    .nodes()
    .to$()
    .addClass( 'new' );

Пожалуйста, прочитайте: rows.add()

Ответ 7

После прочтения документации эта работа для меня:

var my_dataTable = $('#my-table').DataTable();
my_dataTable.row.add( [
                'Hello',
                'Hello2',
                'Hello3',
                'Hello4'
            ] ).draw().nodes().to$().addClass("my_class");

Ответ 8

Хорошо, возможно, я не понимаю, в чем заключается ваш вопрос, но если вы просто добавляете строку, почему бы не установить класс, прежде чем добавлять его? Например, несколько неряшливый, например:

jQuery("<tr />")
  .html(your_var_containing_the_interior_dom)
  .addClass("yourClass")
  .appendTo(jQuery("#yourTable"))