如何替换 jQuery DataTables 中的数据数组

Posted

技术标签:

【中文标题】如何替换 jQuery DataTables 中的数据数组【英文标题】:How to replace the Data Array in jQuery DataTables 【发布时间】:2014-07-22 07:57:41 【问题描述】:

我有一个最初由 JSON 数组填充的 DataTables 表(使用 ASP.NET 直接写入 html)。现在我想用 Ajax 刷新这些数据,但根本不会添加数据。我想使用我自己的方法,而不是 DataTables 的内部 Ajax 方法。 (使用 DataTables 1.10.0)。

$.getJSON("?ajax=1", null, function(json, status, xhr) 
    var table = $("#" + proTableId).DataTable();

    oSettings = table.settings();
    //table.clear();
    table.rows().remove();

    var data = table.data();
    for (var i = 0; i < json.length; i++)
    
        data.push(json[i]);
    
    table.draw();
);

JSON 结果是正确的,但在此调用之后,DataTable 始终为空。如何替换 DataTables 对象中的数据并最好保持排序和过滤?

【问题讨论】:

【参考方案1】:

要向数据表中添加数据,你必须访问数据表对象的属性行,然后调用add方法。最后,您通过调用 draw 方法更新此表。

在Data Table documentation 上可以看到。你必须这样做:

for(var i= 0; i < json.length; i++)
    table.row.add([
       json[i].firstProperty,
       json[i].secondProperty
    ]).draw();

【讨论】:

这行得通,但我不得不稍微改变一下table.row.add(json[i]);

以上是关于如何替换 jQuery DataTables 中的数据数组的主要内容,如果未能解决你的问题,请参考以下文章

jQuery DataTables - 删除标签

jQuery DataTables 初始化延迟

如何遍历 DataTables jQuery 中的所有行?

如何在 jQuery 导出时将 dataTables 中的所有 tableHeader 值更改为大写

如何修复移动设备上 jQuery DataTables 中的 scrollX 移动问题?

如何在 jQuery DataTables 中的分页期间滚动到第一行