我为我的DataTables添加了一个AJAX请求。它工作正常。但是当我添加"serverSide": true
时,DataTables什么都没显示。
<script>
$(document).ready(function () {
var tableProduct = $('#example2').DataTable({"bInfo": false
, "bLengthChange": false
, "bSort": false
, "oLanguage": {"sZeroRecords": "", "sEmptyTable": ""}
, "processing": true
, serverSide: true
, ajax : '${pageContext.request.contextPath}/restservice/ViewProduct'
});
$.ajax({
type: 'GET',
url: '${pageContext.request.contextPath}/restservice/ViewProduct',
success: function (result) {
var jString = JSON.stringify(result);
var jdata = JSON.parse(jString);
for (var x = 0; x < jdata.length; x++) {
var td1 = jdata[x].serialNo;
var td2 = jdata[x].slsiUnit;
var td3 = jdata[x].itemDesc;
var td4 = jdata[x].slsNo;
var td5 = jdata[x].hsCode;
var td6 = jdata[x].hsCode;
var td7 = jdata[x].hsCode;
tableProduct.row.add([td1, td2, td3, td4, td5, td6, td7]).draw(true);
}
}
});
});
</script>
答案 0 :(得分:0)
服务器端处理无法正常工作的最常见原因是 draw 变量(DataTables术语中称为 draw 的每一页数据)未返回为它是在请求中设置的。 DataTables使用 draw 来保持抽奖计数,因此这是一个重要的参数。
请参阅server-side usage以检查DataTables发送给服务器的参数以及它希望返回给它的JSON数据。
除了在您的代码中,您再次向相同的URL发出单独的ajax请求,然后生成似乎已关闭的表,因为DataTables会处理此问题。您只需发送data in acceptable format。