Похоже, вы пытаетесь запросить элементы td до того, как они были созданы dataTables.Вы можете добавить любой код, который необходимо запустить после генерации таблицы, в обратный вызов initComplete, например:
$('#example').DataTable({
dom: 'Bfrtip',
ajax: 'PRC/PRCGenerate',
columns: [
{
data: null,
defaultContent: '',
className: 'select-checkbox',
orderable: false
},
{ data: 'OANO' },
{ data: 'ID' },
{ data: 'PONO' },
{ data: 'POLI' },
{ data: 'MOULDCODE' },
{ data: 'DESCRIPTION' },
{ data: 'Drg' },
{ data: 'Rev' },
{ data: 'METALCODE' },
{ data: 'METALNAME' },
{ data: 'WEIGHT' },
{ data: 'QTY' },
{ data: 'PQTY', className: 'editable' },
{ data: 'Machining' },
{ data: 'PRC' },
{ data: 'DELIVERYDT' },
{ data: 'PRCReadyDT', className: 'editable' },
{ data: 'PRCNO' },
{ data: 'REMARKS', className: 'editable' }
//render: $.fn.dataTable.render.number(',', '.', 0, '$'),
],
select: {
style: 'os',
selector: 'td:first-child'
},
buttons: [
{ extend: 'create', editor: editor },
{ extend: 'edit', editor: editor },
{ extend: 'remove', editor: editor }
],
initComplete: function () {
editor = new $.fn.dataTable.Editor({
ajax: "PRC/PRCGenerate",
table: "#example",
fields: [{
label: "PQTY",
name: "PQTY"
}, {
label: "PRCReadyDT",
name: "PRCReadyDT"
}, {
label: "REMARKS:",
name: "REMARKS"
}
]
});
// Activate an inline edit on click of a table cell
$('#example').on('click', 'tbody td.editable', function (e) {
editor.inline(this);
});
}
});
Есть несколько других событий, которые вы можете использовать, кроме initComplete, которые могут работать для вашего использования:В этом случае их можно найти здесь .Вы можете также захотеть использовать событие draw вместо этого, в зависимости от того, насколько большой будет ваша таблица и используете ли вы пейджинг.