Как добавить класс в строку, которую я добавляю в 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);
Ответ 1
Попробуйте изменить fnRowCallback
на следующее:
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
nRow.className = "gradeX odd";
return nRow;
}
Вы можете обратиться к официальной документации для дальнейшего понимания этой функции обратного вызова.
Ответ 2
Вы можете добавить имя класса в свои данные, как описано в документации.
http://www.datatables.net/examples/server_side/ids.html
используйте DT_RowId для добавления идентификатора для любой строки
используйте DT_RowClass для добавления класса для любой строки
используйте DT_RowDatastrong > для добавления объекта данных 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"))