Без функции ColumnnDefs + Rendering он работает и корректно отображает таблицу. С помощью ColumnDefs + Render появляется следующая ошибка. Версия данных, которые я использую, находится по адресу http://rawgit.com/DataTables/DataTables/master/media/js/jquery.dataTables.js
Uncaught TypeError: Cannot set property '_DT_CellIndex' of undefined
at _fnCreateTr (jquery.dataTables.js:3115)
at _fnAddData (jquery.dataTables.js:2434)
at HTMLTableRowElement.<anonymous> (jquery.dataTables.js:2462)
at jquery-2.1.1.js:144
at Function.map (jquery-2.1.1.js:468)
at jQuery.fn.init.map (jquery-2.1.1.js:143)
at _fnAddTr (jquery.dataTables.js:2460)
at loadedInit (jquery.dataTables.js:1307)
at HTMLTableElement.<anonymous> (jquery.dataTables.js:1332)
at Function.each (jquery-2.1.1.js:375)
<script>
$(document).ready(function () {
$('#main_table').DataTable(
{
'fixedHeader': true,
'order': [[14, 'desc']],
'aoColumns': [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
],
'columnDefs': [{
'render': function (data, type, row) {
//add case logic to convert 0 to 'N' and 1 to 'Y' in Exclude field
if (data == row["Exclude"] && data != null)
if (data == "1") {
return "Y";
} else {
return "N";
}
}
},
"targets": 17
}
]
}
);
});
</script>
У вас есть 17 столбцов (17 записей в массиве aoColumns
), но с использованием "targets": 17
который предназначен для 18-го столбца, потому что он интерпретируется как индекс на основе нуля.
Измените "targets": 17
на "targets": 16
для целевой ячейки в последнем столбце.