我使用datatables.net创建数据表(jquery)
我试图从服务器端创建我的datatable(dt)标头。会发生的事情是,在我获得数据和列标题信息的初始帖子后,我有第二个帖子到服务器(这是不相关的,因为我已经有我的数据)。所以我禁用它,但后来我的dt没有正确初始化 - 我丢失"导航按钮和分页信息显示例如-1总共-1的记录中的1。
是否有任何方法可以防止第二次回击,但有一个"正确的" dt初始化?此时我需要设置oTable.fnDraw(false)以保持正确的初始化
this.initialize = function () {
internalHtmlID = getHtmlIdentifier(id);
$.ajax({
method: "GET",
url: url
})
.done(function (data) {
internalHtmlID = getHtmlIdentifier(id);
var oTable = $('' + internalHtmlID + '').dataTable({
"aaSorting": [[0, "desc"]],
"bServerSide": true,
"processing" : true,
"deferLoading": -1,
"aaData": data.aaData,
//"aaData": null,
"aoColumns": data.aoColumns,
"ajax": {
"url": url,
"dataType": "json"
}
});
oTable.fnDraw(false);
})
.fail(function (msg) {
});
};
答案 0 :(得分:0)
<强>解强>
您可能希望使用deferLoading
来延迟加载服务器端数据,直到第二次抽奖。
var oTable = $('' + internalHtmlID + '').dataTable({
"aaSorting": [[0, "desc"]],
"bServerSide": true,
"processing" : true,
"deferLoading": data.iTotalRecords,
"aaData": data.aaData,
"aoColumns": data.aoColumns,
"ajax": {
"url": url,
"dataType": "json"
}
});
<强>样本强>
请参阅this jsFiddle进行演示