如何用新的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

  1. DataTables的现代定义(上骆驼案例):

    var datatable = $( selector ).DataTable();

  2. DataTables的传统定义(较低的骆驼案例):

    var datatable = $( selector ).dataTable().api();

  3. 使用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();

https://datatables.net/reference/api/rows.add();

https://datatables.net/reference/api/draw();

您可以使用:

 $('#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);