2

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

2 Answers 2

3

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...
  }
} );
Sign up to request clarification or add additional context in comments.

Comments

1

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

2 Comments

Thanks for the quick response. It doesn't look like drawCallback is passed the JSON response, although I now notice initComplete does, which I'd somehow not come across when searching earlier, so I'll maybe try that.
I didn't check but in the documentation here datatables.net/reference/option/drawCallback there is the example where you can use the api() function. Maybe it can be useful

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.