【问题标题】:Error when using fnAddData with data-order将 fnAddData 与数据顺序一起使用时出错
【发布时间】:2018-03-29 09:16:16
【问题描述】:

我有一个 datatable,它最初是在服务器端填充的。用户可以通过在模式弹出窗口中添加行数据来与数据表交互。我最近添加了数据属性data-order='',以便我们可以更好地处理日期排序。现在,我们对fnAddData 的调用因以下任一错误而终止:

DataTables 警告:表 id=dtTable - 请求的未知参数 '[object Object]' 用于第 3 行第 0 列。有关此内容的更多信息 错误,请看http://datatables.net/tn/4

DataTables 警告:表 id=dtTable - 请求的未知参数“1” 对于第 6 行第 1 列。有关此错误的更多信息,请参阅 http://datatables.net/tn/4

简单示例:https://jsfiddle.net/shanabus/2yu7mLL3/

我查看了 datatables.net 上的支持文档,但它们没有解决这个特定问题。如果您还使用 data-order,您如何使用 fnAddData

【问题讨论】:

    标签: datatables


    【解决方案1】:

    您可以尝试构造tr 节点并使用接受节点作为参数的更新的row.add() API 方法。

    例如:

    $("#btnAddRow").on("click", function() {    
       var newRow = ['4/4/2014', '<test> Name'];
       var newRowOrder = 999;
       var $row = 
          $('<tr><td data-name="ReadingDate" data-order="' + newRowOrder + '">' 
          + $('<div>').text(newRow[0]).html() 
          + '</td><td data-name="Name">' 
          + $('<div>').text(newRow[1]).html() 
          + '</td></tr>');
    
       $("#dtTable").DataTable().row.add($row).draw();
    });
    

    有关代码和演示,请参阅 updated example

    我有 created an issue #987 提议改进有关此用例的文档。

    【讨论】:

    • 谢谢,听起来他们已经关闭了您的票。但是他们引用的解决方案/线程也不能解决问题。所以没有办法(即使使用列数据)来应用data-* 并且DataTables API 在那里?
    • @shanabus,使用我在答案中推荐的解决方案。
    猜你喜欢
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多