Мы используем плагин Gyrocode Checkboxes для Datatables. Для данных options
таблицы данных создаются следующим образом:
function addDataTable(options) {
var target = $('#'+options.table);
var table = target.DataTable({
ajax : options.ajax,
data: options.data,
select: options.select ? {
selector: 'td:first-child',
style: options.select
} : undefined,
columnDefs: enrichColumnDefs(options),
columns : enrichColumns(options)
// ... more definitions
});
}
function enrichColumnDefs(options){
var defs = [{
targets: 'no-sort',
orderable: false,
}];
if(!options.select) return defs;
defs.unshift({
targets: 0,
orderable: false,
checkboxes: {
selectRow: true
},
createdCell : options.preselect ? // if preselect rule exists, execute on cell create
function (td, cellData, rowData, row, col){
if(options.preselect(rowData)){
this.api().cell(td).checkboxes.select();
}
} : undefined
});
return defs;
}
Код основан на этой документации . Он работает нормально без параметра createdCell
. Флажки отображаются и работают как положено. С параметром выдается ошибка:
TypeError: ctx.checkboxes is undefined - dataTables.checkboxes.min.js:5:15174
Используемые файлы флажков соответствуют описанию на домашней странице:
<link type="text/css" href="//gyrocode.github.io/jquery-datatables-checkboxes/1.2.11/css/dataTables.checkboxes.css" rel="stylesheet" />
и
<script type="text/javascript" src="//gyrocode.github.io/jquery-datatables-checkboxes/1.2.11/js/dataTables.checkboxes.min.js"></script>