new API (draw(), clear() and ajax.reload())
new API (draw(), clear() and ajax.reload())
Hi,
i have a ajax backed table. Now when i click a button, i want to clear the table and reload stuff and show it. Easy enough.
My problem is that clear() doesnt work without draw() at the end. But draw() does the ajax call itself. So i cant show the user an empty table while its reloading.
I dont get why draw() reloads the ajax source. I thought that ajax.reload() is responsible for that.
At the end i only want to temporary clear the table, while the ajax request is being made so that the user doesnt see the "old" data in the meantime. Sounds easy but somehow i am missing something....
Thanks
Marc
This question has an accepted answers - jump to answer
Answers
Sounds like you have server-side processing enabled. Do you (a debug trace or a link to the page would be useful)?
If so, then yes, a
draw()
will always trigger a reload. Alsoclear()
won't empty the table since it is a client-side function.You might want to read over the processing modes part of the manual.
Allan
server side processing is on. yes. I will read the stated docs. Thanks.
Ok. I am familiar with the infos in the docs so far. But back to my question. Is there any easy way to clear the table (visually) after i have called a draw() for reloading?
How long does the reload take - 200mS perhaps? Why not just show a "processing" message (
processing
).Allan
I am already showing the processing message, but anyway... i might live with it... Not a serious issue... just something i ve been thinking about. I thought i ve missed something obvious... but seems not...
thx.
I have similar issue actually: I have an ajax-based datatable, which I want to "expand" when user scrolls the browser window. I am able to fetch more data on scroll (e.g. fetch 20 more rows after scroll is bigger than 70% of page height) and add it with rows.add(...). However after calling .draw() the table gets reloaded to original state (an ajax call is executed) - ending up with first 20 rows only displayed. Is there any way to add rows and re-draw them without doing full ajax reload?
Solved it. This post lead me to solution:
http://datatables.net/forums/discussion/6580/fnadddata-not-working-as-expected
Simply I don't use datatables API when appending new rows loaded from server. Instead I only append all <tr> from the ajax response to the DOM.