数据表rows.add错误 - 警告:请求未知

时间:2018-04-16 15:21:18

标签: javascript jquery datatables

我已经使用数据表几周了,我有这个自定义数据表,我可以按类(tableIdentifyClass)识别:

var handleDataTable = function () {
        if ($("." + tableIdentifyClass).length) {
            table = $("." + tableIdentifyClass).DataTable({
                aaData: dataForTable,
                aoColumns: [
                    { mData: "IsDefault", title: "" },
                    { mData: "Name", title: "Name" },
                    { mData: "Icon", title: "Icon" },
                    { mData: "IsDefault", title: "" }],
                "order": [[1, "asc"]],
                "bAutoWidth": false,
                "lengthChange": false,
                "columnDefs": [{
                    "targets": 0,
                    "render": function (data, type, full, meta) {
                        if (type === 'display') {
                            if (!data)
                                return '<span class="fa-xs"><i class="fa fa-edit" style="font-size:125%" onclick:""></i></span>';
                            else return '<span></span>';
                        }
                        return (isNaN(data)) ? -1 : +data;
                    }
                },
                {
                    "targets": 2,
                    "render": function (data, type, full, meta) {
                        if (type === 'display') {
                            if (data != '')
                                return '<span class="fa-xs"><i class="fa ' + data + '" style="font-size:125%"></i></span>';
                            else return '<span>-</span>';
                        }
                        return (isNaN(data)) ? -1 : +data;
                    }
                },
                {
                    "targets": 3,
                    "render": function (data, type, full, meta) {
                        if (type === 'display') {
                            if (!data)
                                return '<a class="fa-xs"><i class="fa fa-times" style="font-size: 125%; color: red;" onclick="deletePrefLocally(' + full.UId + ',' + full.Id + ',\'' + tableIdentifyClass + '\')"></i></a>';
                            else return '<span></span>';
                        }
                        return (isNaN(data)) ? -1 : +data;
                    }
                }]
            });
        }
    }

表格的数据(dataForTable):

[ { "Icon": "fa-exclamation-circle", "IsDefault": true, "Name": "Nixon", "UId": 1 },
     { "Icon": "fa-exclamation-circle", "IsDefault": false, "Name": "Tiger", "UId": 2 }]

我试图通过调用函数deletePrefLocally

来删除第二行
function deletePrefLocally(uId, deletedId, tableIdentifyClass) {
        var crtUsage = dataForTable; //same items as the table
        var inItems = crtUsage.filter(function (elem) {
            return elem.Id === deletedId; // find the item with the same id
        })[0];
        var found = crtUsage.indexOf(inItems);
        if (found != -1) crtUsage.splice(found, 1);

        table = $("." + tableIdentifyClass);
        datatable = table.DataTable();
        datatable.clear();
        datatable.rows.add(crtUsage).draw();
}

我的问题是最后一行datatable.rows.add(crtUsage).draw();会弹出一条消息:DataTables warning: - Request unknows parameter '0' for row 0, column 0. For more information about this error, please see http://datatables.net/tn/4 为什么不应用新内容?为什么关闭错误框后我有两个搜索区域和分页,所有值都为空?我做错了什么?

2 个答案:

答案 0 :(得分:0)

您已定义&#34; IsDefault&#34;列列表中有两次。

aoColumns: [
   { mData: "IsDefault", title: "" },
   { mData: "Name", title: "Name" },
   { mData: "Icon", title: "Icon" },
   { mData: "IsDefault", title: "" }],

我怀疑你的意思是&#34; UId&#34;对于最后一个,因为它包含在数据中。

答案 1 :(得分:0)

找到原因...在加载完所有页面之后,我已经检查过基于tableIdentifyClass我是否在调用$.fn.DataTable.isDataTable( '.' + tableIdentifyClass)后收到了真的但是它是假的。在调用datatable = table.DataTable();时,我在现有的数据中创建了一个数据表,重复的搜索区域和分页:(我已尝试在全局数组中初始化后保存所有"tables"并在其中搜索为了添加新行。也许这不是最好的解决方案,但它对我有用。