Javascript Datatable-回调后更改为单击的页面
我有一个需要分页的jquery数据表。我使用了Javascript Datatable-回调后更改为单击的页面,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个需要分页的jquery数据表。我使用了page dt事件来启动一个函数,在单击页码时从服务器端加载数据。然后我使用了$('#table').dataTable().fnAddData(recordsArray)将新检索到的数据追加到表中。这是成功的。我的问题是,即使数据被追加到表中,它仍然会保留在第一页,尽管发生了click事件。我尝试了table.rows.add(recordsArray.draw()和fnDrawCallback事件,但仍然没有成功 $(docume
page dt
事件来启动一个函数,在单击页码时从服务器端加载数据。然后我使用了$('#table').dataTable().fnAddData(recordsArray)
将新检索到的数据追加到表中。这是成功的。我的问题是,即使数据被追加到表中,它仍然会保留在第一页,尽管发生了click事件。我尝试了table.rows.add(recordsArray.draw()
和fnDrawCallback
事件,但仍然没有成功
$(document).ready(function() {
table = $('#table').DataTable({
"filter": true,
"paging":true,
"pagingType": "full_numbers",
"pageLength": 5,
scrollCollapse: true,
scrollY:'70vh',
"dom": '<"dataTablesTop"' +
'f' +
'<"dataTables_toolbar">' +
'>' +
'rt' +
'<"dataTablesBottom"' +
'lip' +
'>',
"info":true
});
$('#table').on('page.dt', function (e, settings) {
// console.log(JSON.stringify(settings));
update(settings);
});
});
感谢您对此的任何意见
提前谢谢 我只需制作
table.rows.add(recordsArray.draw()代码>到表.rows.add(recordsArray).draw(false)代码>据我所知,datables有一个选项,您可以在datatable NewPage上自动将数据ajax化。这实际上并不适用于新页面。假设我最初加载了2-3页。然后,当我点击第二页时,我需要加载第四页的数据并将其移动到第二页。为什么需要这样做?服务器端和数据表逻辑实际上相当复杂。它是由小工具服务器创建的。所以如果我要改变那部分,我必须改变一个巨大的代码。无论如何,我通过简单地向table.rows.add(recordsArray.draw())添加false参数来实现这一点;方法。谢谢你的支持!美好的这是链接,以防有人想知道更多。
update = function(data) {
alert(data);
var displayStart = data._iDisplayStart;
var displayLength = data._iDisplayLength;
var records = data.aiDisplay.length;
if(displayStart != 0) {
var data = getProviderData(displayStart, displayLength, records, true);
for(var i = 0; i < data.length; i++ ) {
no = no + 1;
data[i].no = no;
try {
var json = data[i].jsonBody.replace(/\\n/g, "")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace("%", "")
.replace(/\\f/g, "\\f");
data[i].jsonContent = JsonHuman.format(JSON.parse(json)).outerHTML;
}
catch (e) {
data[i].jsonContent = data[i].jsonBody;
}
}
var recordsArray = [];
for(var j = 0; j < data.length; j++) {
var temp = [];
temp.push(data[j].no);
temp.push(data[j].responseTime);
temp.push(data[j].api);
temp.push(data[j].jsonContent);
recordsArray.push(temp);
}
// table.rows.add(recordsArray).draw();
$('#table').dataTable().fnAddData(recordsArray);
}
// drawGadget();
// wso2gadgets.update(data,"append");
return;
};