如何用新的JSON数据手动更新数据表
我正在使用插件jQuery数据表,并加载我已经在页面底部的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选项 – 不要误解我的意思!),并用这些数据更新表。 我怎样才能使用数据表API? 该文件是非常混乱,我找不到解决scheme。 任何帮助将非常感激。 谢谢。
解决方法:(注意:此解决scheme适用于datatable版本1.10.4(目前)不是旧版本):
澄清根据API文档 (1.10.15),可以通过三种方式访问API
-
DataTables的现代定义(上骆驼案例):
var datatable = $( selector ).DataTable();
-
DataTables的传统定义(较低的骆驼案例):
var datatable = $( selector ).dataTable().api();
-
使用
new
语法。var datatable = ew $.fn.dataTable.Api( selector );
然后像这样加载数据:
$ .get('myUrl',function(newDataArray){ datatable.clear(); datatable.rows.add(newDataArray); datatable.draw(); });
API参考:
https://datatables.net/reference/api/clear();
您可以使用:
$('#table').dataTable().fnClearTable(); $('#table').dataTable().fnAddData(myData2);
的jsfiddle
更新。 是的,目前的文件是不是很好,但如果你可以使用旧版本,你可以参考旧文件 。
在我的情况下,我没有使用内置的ajax api将Json提供给表(这是由于某些格式化在数据表的rendercallback中很难实现)。
我的解决scheme是在onload函数和处理数据刷新的函数(例如, var table = null
)的外部范围中创buildvariables。
然后我实例化我的表在加载方法
$(function () { //.... some code here table = $("#detailReportTable").DataTable(); .... more code here });
最后,在处理刷新的函数中,我调用clear()和destroy()方法,将数据提取到html表中,然后重新实例化数据表,如下所示:
function getOrderDetail() { table.clear(); table.destroy(); ... $.ajax({ //.....api call here }); .... table = $("#detailReportTable").DataTable(); }
我希望有人认为这有用!
这是传统数据表1.9.4的解决scheme
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);