问题
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!
回答1:
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
- clear the table
- Set the draw count back to 0, which triggers the initial message again
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(); });
回答2:
There are "language" options where you can dictate what shows up during various events. DataTables has great documentation showing it. https://datatables.net/reference/option/language.processing
来源:https://stackoverflow.com/questions/34934098/datatables-net-ajax-reload-loading-message