DataTables.js添加行时请求的未知参数

时间:2018-01-08 21:42:42

标签: javascript jquery datatable

我的页面上有一个预定义的数据表,它是通过ajax调用从数据中填充的。在页面上显示这些值之后,用户需要能够通过单击按钮添加行,类似于审计日志。但是,每次我添加一行时都会收到错误

  

“DataTables警告:table id = DataTables_Table_0 - 请求未知   第2行第0列的参数'data1'。“

我一直在互联网上上下,无法解决这个问题。请帮助。

我有全局定义的表变量,所以每个人都可以访问它

var escalationTable;

然后调用我的ajax来填充所述表的函数。

 function populateTable(var1, var2, var3, var4, var5, var6, var7) {
            $.ajax({
                dataType: 'json',
                //data: id,
                type: 'GET',
                async: false,
                url: baseUrl + 'rest/partUrl/action?var1=' + var1 + '&var2=' + var2 + '&var3=' + var3 + '&var4=' + var4,
                success: function (data) {
                    if (data) {


                        escalationTable = $('.escalationTable').DataTable({
                            data: data,
                            columns: [
                                {
                                    data: "data1" ? "data1" : null
                    },
                                {
                                    data: "data2" ? "data2" : null

                    }, {
                                    data: "data3" ? "data3" : null
                    }
                ],
                            bSort: false
                        });



                    }
                },
                error: function (request, status, error) {
                    showErrorMessage(request);
                }
            });
        }

HTML

<table class="table escalationTable col-md-12" style="width:100%;">
                                                                <thead>
                                                                    <tr>
                                                                        <th name='esId' scope="col">#</th>
                                                                        <th name='esUser' scope="col">User</th>
                                                                        <th name='esDate' scope="col">Date</th>
                                                                    </tr>
                                                                </thead>
                                                                <tbody>
                                                                </tbody>
                                                            </table>

然后我的点击看起来像这样

$('.assignToSelf').on('click', function () {
        var rowNode = escalationTable
            .row.add({
                "esId": 'ffffff',
                "esUser": 'dfsdfsdf',
                "esDate": 'fffff'
            })
            .draw(false)
            .node();

    })

1 个答案:

答案 0 :(得分:1)

这个问题的答案是命名添加的字段与进入字段的数据相同。不基于该字段的名称。

$('.assignToSelf').on('click', function () {
        var rowNode = escalationTable
            .row.add({
                "data1": 'ffffff',
                "data2": 'dfsdfsdf',
                "data3": 'fffff'
            })
            .draw(false)
            .node();

    })