#javascript #datatables
Вопрос:
Я работаю с DataTable и пытаюсь сделать что-то подобное
columnDefs: [{
"targets": '_all',
"createdCell": function (td, cellData, rowData, row, col) {
alert("You are in column: " Columns[col].name);
}
}]
что мне нужно, так это имя столбца, в котором находится создаваемая ячейка. На данный момент я знаю, что у col есть свой индекс, но я действительно не знаю, как с ним работать. rowData, похоже, помогает, так как имеет свойства столбцов таблицы, но на самом деле не знает, как их использовать.
Ответ №1:
Вы можете получить доступ к этой информации из объекта таблицы settings
, но имейте в виду, что это внутренний объект DataTables, который вы должны использовать только в том случае, если нет другого официального вызова API, который вы можете использовать вместо него.
Предполагая, что у вас есть таблица со следующим идентификатором:
<table id="example"></table>
тогда вы можете использовать это:
columnDefs: [{
"targets": '_all',
"createdCell": function (cell, cellData, rowData, rowIndex, colIndex) {
var colInfo = $('#example').DataTable().settings()[0].aoColumns[colIndex];
console.log( "This column has the following title: " colInfo.sTitle );
console.log( "This column has the following name: " colInfo.sName );
}
}]
Это показывает, как получить доступ как к названию, так и к имени — выберите то, что вам нужно!
Я не видел лучшего способа получить доступ ни к одному из них, но если он есть, то это было бы предпочтительнее такого подхода.
Комментарии:
1. у меня не было идентификатора «#Пример», но я мог использовать «$(Это)» в качестве контекста, в котором я работал, был сам DataTalbe. Что мне точно было нужно, так это строка DataTable().settings()[0].aoColumns[colIndex]. Большое спасибо! =)