使用rowcallback在重绘后显示表格中以前选定的行...没有任何事情发生。我已在控制台中确认我的“选定”数组是正确的,但回调似乎没有做任何事情。
如果行值在该数组中,则应该将tr的id值存储在其数组中...在回调中...应该将类应用于它。
$('#sample_1').dataTable({
"processing": true,
"serverSide": true,
"ajax": "/custom/data-tables/process.php",
// set timestamp as initial sorting
"aaSorting": [[5,'desc']],
// change index column
"columnDefs": [
{
"targets": [ 0 ],
"searchable": false,
"sortable": false,
"render": function ( data, type, row ) {
return '<input type="checkbox" class="checkboxes" value="'+data+'" />';
}
}
],
"fnDrawCallback": function() {
$('#sample_1 .checkboxes, #sample_1 .group-checkable').uniform();
},
"rowCallback": function( row, data, displayIndex ) {
if ( $.inArray(data.DT_RowId, selected) !== -1 ) {
$(row).addClass('active selected');
}
}
});
var selected = [];
$('#sample_1_wrapper').on('change', 'tbody tr .checkboxes', function () {
var id = $(this).parents('tr').attr("id");
console.log('id '+id);
var index = $.inArray(id, selected);
console.log('index '+index);
if ( index === -1 ) {
selected.push( id );
}
else {
selected.splice( index, 1 );
}
console.log('selected '+selected);
// add checked status and
var checked = $(this).is(":checked");
if (checked) {
$(this).attr("checked", true);
$(this).parents('tr').addClass("active selected");
}
else {
$(this).attr("checked", false);
$(this).parents('tr').removeClass("active selected");
}
});
更多信息
在if语句返回以下值之前,使用rowCallback中的控制台日志:
的console.log(data.DT_RowId); 的console.log(选择的);
187413 [ “187413”]
那么,187413是否在选定的数组中,为什么它没有返回正确的响应?
答案 0 :(得分:0)
转换为字符串 - if($ .inArray((data.DT_RowId).toString(),selected)&gt; -1){