如何在JQuery Datatable中选择另一个页面后重新绘制Datatable?
我有一个DataTable,我从服务器端填充数据。桌子正以正确的方式填充。当我使用分页时,再次调用服务器端并为下一页生成JSON数据。数据是正确的。但桌子并不令人耳目一新。根据Datatables文档,我知道我应该以某种方式使用draw()
函数,但我不知道该在哪里调用它。如何在JQuery Datatable中选择另一个页面后重新绘制Datatable?
这是我的HTML表格:
<table id="table-esemenyLista" class="table table-striped table-bordered table-hover"> <thead> <tr> <th>Id</th> <th>Dátum</th> <th>Esemény</th> </tr> </thead> <tbody id="esemenyListBody" class="text-primary"> </tbody> </table>
这是连接到它的jQuery的数据表代码:
$(document).ready(function() { esemenyListaTable = $("#table-esemenyLista").DataTable({ "processing" : true, "serverSide" : true, "paging" : true, "searching" : false, "lengthChange" : false, "drawCallback": function(settings) { console.log('redrawn'); }, "ajax" : contextPath + "/historyContent.do" }); });
这是JSON对象我从服务器 - 获得sid(右侧):
{ "draw":1, "recordsTotal":16, "recordsFiltered":16, "data":[ [ 1, "2016-07-23", "text1" ], [ 12, "2016-10-04", "text2" ], [ 13, "2016-10-04", "text3" ], [ 16, "2016-10-18", "text4" ], [ 17, "2016-11-05", "text5" ], [ 18, "2016-11-14", "text6" ], [ 19, "2016-11-15", "text7" ], [ 20, "2016-11-16", "text8" ], [ 22, "2016-11-16", "text9" ], [ 23, "2016-11-17", "text10" ] ] }
转向第二页后,我得到了以下JSON对象,这是一种语法是正确的,但没有出现:
{ "draw":1, "recordsTotal":16, "recordsFiltered":16, "data":[ [ 24, "2016-11-17", "text11" ], [ 25, "2016-11-23", "text12" ], [ 26, "2016-11-23", "text13" ], [ 27, "2016-11-23", "text16" ], [ 28, "2016-11-24", "text17" ], [ 29, "2016-11-25", "text18" ] ] }
的drawCallBack
功能只写日志第一次。我应该如何调用绘制方法?当我在StackOverflow中发现一些与我的相关的其他问题后,我知道我应该清除,然后重新绘制表格,但是如何?请有人帮助我吗?
您必须返回正确的draw
索引。 所以第二个必须是“绘制”:2。 我不知道你的服务器端语言,在PHP中你可以通过$_GET['draw']
得到绘制索引谢谢:)我没有动态地设置'draw'变量,那就是问题所在。 – Igorovics
我知道,没有立即得到,不得不尝试:D不喜欢手册页 – FirePanther