我用DataTables建立了我的网站 我从我的java servlet后端通过它的ajax服务获取我的数据 - 这工作正常,DOM一切看起来都不错。但即使我掌握了所有数据,看起来所有的DataTables功能都失败了。
(所有字段都有效,我故意将null返回给空字段)
我的jQuery DataTables设置如下所示:
function getUserTable() {
var table = $('#example').DataTable({
"destroy": true,
"processing": true,
"serverSide": true,
"ajax": {
"dataType": 'json',
"url": "action=getAllUsers",
"type": "POST",
"dataSrc": "allUsers"
},
"columns": [
{"data": "id"},
{"data": "username"},
{"data": "firstName"},
{"data": "lastName"},
{"data": "loggedIn"},
{"data": "email"}
]
});
}
所以我将serverSide设置为true,因为我的后端位于同一台服务器上 - 我似乎无法找到任何相关教程,但似乎内置搜索功能在设置为服务器端时无效?
另外为什么表格似乎没有被初始化?它显示太多页面并说“显示0到0的0个条目”
我返回的json数据如下所示:
allUsers: [{email:null, firstName:null, id:1, lastName:null, loggedIn:false, username:mag},…]
Html表格结构:
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Id</th>
<th>Brugernavn</th>
<th>Navn</th>
<th>Efternavn</th>
<th>Logged</th>
<th>Email</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Id</th>
<th>Brugernavn</th>
<th>Navn</th>
<th>Efternavn</th>
<th>Logged</th>
<th>Email</th>
</tr>
</tfoot>
</table>
答案 0 :(得分:2)
关于内置搜索功能,我记得你是对的。它不适用于AJAX。您可以使用它,但不使用内置搜索。必须在服务器端进行搜索。当使用搜索字段时,使用包含搜索值的附加参数创建新的AJAX。
要使分页工作,您必须返回ajax响应中的总条目数,并在初始化DataTable时设置分页配置。
实施例
Ajax响应:
{"iTotalRecords":"497","iTotalDisplayRecords":"497","aaData":[]}
分页配置:
var gridSettings = {
/* .... */
"iDisplayStart": 0,
"iDisplayLength": 20
};
$('#elt').dataTable(gridSettings);