我有一个DataTable,我从服务器端填充数据。桌子正在以正确的方式填补。当我使用分页时,再次调用服务器端并为下一页生成JSON数据。数据是对的。但桌子并不令人耳目一新。根据Datatables文档,我知道我应该以某种方式使用draw()
函数,但我不知道在哪里调用它。
这是我的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"
});
});
这是我第一次从server-sid获得的JSON对象(右图):
{
"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
函数仅在第一次写入日志。我该如何调用draw方法?我在StackOverflow上发布了与我相关的其他一些问题之后,我知道我应该清除,然后重绘表格,但是如何?有人可以帮帮我吗?
答案 0 :(得分:1)
您必须返回正确的draw
索引。
所以第二个必须是&#34;画&#34;:2。
我不知道你的服务器语言,在PHP中你可以用$_GET['draw']
得到绘制索引