我正在使用插件jQuery datatables并加载我在页面底部的DOM中加载的数据,并以这种方式启动插件:
var myData = [
{
"id": 1,
"first_name": "John",
"last_name": "Doe"
}
];
$('#table').dataTable({
data: myData
columns: [
{ data: 'id' },
{ data: 'first_name' },
{ data: 'last_name' }
]
});
现在。在执行了一些操作之后,我希望使用ajax获取新数据(而不是数据表中的ajax选项构建--不要误会我的意思!)并用这些数据更新表。我如何使用datatables API来实现这一点?文档非常混乱,我找不到解决方案。任何帮助都将不胜感激。谢谢。
发布于 2015-01-05 19:26:57
您可以使用:
$('#table').dataTable().fnClearTable();
$('#table').dataTable().fnAddData(myData2);
更新。是的,当前的文档不是很好,但是如果您可以使用旧版本,您可以参考legacy documentation。
发布于 2017-11-15 02:04:33
以下是遗留datatable 1.9.4的解决方案
var myData = [
{
"id": 1,
"first_name": "Andy",
"last_name": "Anderson"
}
];
var myData2 = [
{
"id": 2,
"first_name": "Bob",
"last_name": "Benson"
}
];
$('#table').dataTable({
// data: myData,
aoColumns: [
{ mData: 'id' },
{ mData: 'first_name' },
{ mData: 'last_name' }
]
});
$('#table').dataTable().fnClearTable();
$('#table').dataTable().fnAddData(myData2);
发布于 2017-10-03 13:42:17
在我的例子中,我没有使用内置的ajax api将Json提供给表(这是由于某些格式化很难在datatable的呈现回调中实现)。
我的解决方案是在onload函数的外部作用域和处理数据刷新的函数(例如var table = null
)中创建变量。
然后在on load方法中实例化我的表
$(function () {
//.... some code here
table = $("#detailReportTable").DataTable();
.... more code here
});
最后,在处理刷新的函数中,我调用clear()和destroy()方法,将数据提取到html表中,并重新实例化datatable,如下所示:
function getOrderDetail() {
table.clear();
table.destroy();
...
$.ajax({
//.....api call here
});
....
table = $("#detailReportTable").DataTable();
}
我希望有人会觉得这很有用!
https://stackoverflow.com/questions/27778389
复制相似问题