Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Datatables.net ajax reload loading message

On initial load of my datatable via ajax, the table shows no data and 'Loading...' appears in the table body.

On DataTable().ajax.reload(), the 'Loading...' text is not present.

I know I can turn on the processing option to get the bar across the table, but if I do this then on initial loading my users see both 'Loading...' in the table body and 'Processing...' on top of that.

Has anyone found a solution to have one all the time or the other? I would prefer to replace the table body with 'Loading...' for each ajax reload.

Thanks!

like image 291
Malissa Avatar asked Mar 14 '23 13:03

Malissa


1 Answers

With Datatables 1.10 I had the same issue. I found a way to get this to work. If you use the preXhr event which fires before the ajax call you can

  1. clear the table
  2. Set the draw count back to 0, which triggers the initial message again
  3. ReDraw the table and loading will appear.

    mydataTable.on('preXhr.dt', function(e, settings, data){
        $(this).dataTable().api().clear();
        settings.iDraw = 0;   //set to 0, which means "initial draw" which with a clear table will show "loading..." again.
        $(this).dataTable().api().draw();
    });
    
like image 107
Curtis Avatar answered Mar 19 '23 08:03

Curtis