Jquery.DataTables动态地将新记录添加到现有的dataTable中

时间:2014-10-13 10:45:49

标签: jquery jquery-datatables

非常感谢任何帮助:

消息"请求的未知参数'检查'第201行和第34行;当动态地将新行添加到现有表时。

我正在尝试动态地将新记录添加到已创建的DataTable中。 (在用户单击某个按钮后,程序会确定它必须添加多少条记录并动态添加它们。以下是我初始化DataTable的方法:

_tbl_actv = $(table).DataTable({
        "scrollY": '450px',
        "bAutoWidth": true,
        //"scrollCollapse": true,
        "bFilter": true,
        "bLengthChange": true,
        "info": true,
        "iDisplayLength": 25,
        data: collection,
        columns: [
            { data: 'Check', width: "5%" },
            { data: 'Descr_En' }
        ],
        "columnDefs": [                
            { "title": "#", "targets": 0 },
            { "title": "Activity", "targets": 1 }
        ]
    });

最初'收集'包含200行。稍后,用户可以通过单个操作添加几个新行。以下是这些记录的动态添加方式。

_tbl_actv.row.add([{Check:row.Check,                      Descr_En:row.Descr_En}]);

- >抛出错误消息!

_tbl_actv.draw();

深入研究Jquery.DataTables js的源代码,我看到了这些:

  1. 最初,当DataTable第一次加载前200条记录时,函数" _fnGetObjectDataFn"调用并返回一个指向函数的指针,以便稍后进一步访问此特定行。在我的例子中,它是指针(源代码中的复制粘贴):

    / *数组或平面对象映射* /

        return function (data, type) { // row and meta also passed, but not used
    
            return data[mSource];
    
        };
    

    这是最后一个案例

    此次通话后,所有200行都是单独指向访问功能(出于加速原因)。

  2. 对于新记录,第201条记录此次通话失败,因为我看到了“mSource'虽然我可以看到'数据' (这是一个数组)包含我的新记录。因此调用失败,因为它不返回任何内容(未定义)。看起来为了动态地向DataTable中添加一行,必须进行某种重置,以便“访问”功能'可以为这些新记录构建(因此“mSource'将具有新记录的有效值”)。是否有更合适的调用向DataTable添加行?这是一个错误(我使用的是版本 1.10.2 ),还是更有可能错过了一些非常重要的错误?

  3. 非常感谢您的时间,非常感谢您的见解

1 个答案:

答案 0 :(得分:0)

您不能在数组中添加行作为对象,您必须将行添加为数组或对象请参阅docs,如果您要添加多行将使用数组中的数组。