I've got a DataTable that gets its data via AJAX, and alongside the data member of the JSON object I have an additional info field that is used to determine e.g. row colors.
I'm making use of this info field fine via the ajax.reload callback, but this callback isn't called on the initial table load. I tried using the XHR handler, but that's called before the table is drawn, so I've got my hands on the JSON object but not the yet-to-be-rendered table internals.
Can anyone point me to an example of a callback function that has access to the JSON object after the initial table draw operation? I.E. much the same as ajax.reload, only without the "re"?
Thanks
You may use the drawCallback
function as documented here https://datatables.net/reference/option/drawCallback
Otherwise you may use the "columnDefs" function e try to get the full row and ad to it your css. For example (not tested but it should work)
$("#myTable").DataTable({
"deferRender": true,
"columnDefs":
[
{
"render": function ( data, type, row )
{
var tr = $(this).closest('tr');
//Now yuo should have the row
},
"className":"colonnaElencoMessaggi",
"name":"deviceMessages",
"orderable":false,
"targets": 2
}
]
});
I hope this can help
Angelo
As you mentioned in response to Angelo's answer, use the initComplete
option.
$('#example').dataTable( {
"initComplete": function(settings, json) {
var info = json.info;
// do whatever with info here...
}
} );