如何动态添加没有"请求的未知参数"错误的行

Com*_*ler 7 javascript ajax jquery datatables

我是DataTables的新手,我在向数据表动态添加新行时遇到了问题.

这是我的初始化:

table = $("#college-list").DataTable({
    'ajax': {
       'url': 'admin/get_college',
       'type': 'GET'
    },
    'columns': [
       { 'data': 'college_abbrev', "bSortable": true  },
       { 'data': 'college_name' , "bSortable": true },
       {
         "mData": null,
         "bSortable": false,
         "mRender": function(data, type, college) {
            return '<button type="button" class="btn btn-primary edit-college table-condensed">Edit</button>'
                   +'<button data-id="' + college.college_id  + '" type="button" class="delete-college btn btn-primary table-condensed" href="">Delete</button>';
          }
       }
    ]
});
Run Code Online (Sandbox Code Playgroud)

这里是添加一个新行(当我使用的示例代码ca,cn以及college_id是变量):

table.row.add( [
    {
       "college_abbrev": ca,
       "college_name": cn,
       "button":'<button type="button" class="btn btn-primary edit-college table-condensed">Edit</button>'
                +'<button data-id="' + college_id  + '" type="button" class="delete-college btn btn-primary table-condensed" href="">Delete</button>'
    }
]).draw();
Run Code Online (Sandbox Code Playgroud)

它会创建一行但除了按钮之外列是空的,它会出现以下错误:

DataTables警告:table id = college-list - 第17行请求的未知参数'college_abbrev'

你如何正确添加新行?

Gyr*_*com 8

请改用以下代码:

table.row.add({
   "college_abbrev": ca,
   "college_name": cn,
   "college_id": college_id
}).draw();
Run Code Online (Sandbox Code Playgroud)

您收到"请求的未知参数"错误,因为您要传递对象数组row.add(),而应该传递简单对象,请参阅row.add()以获取更多信息.

此外,您无需在调用中构造按钮row.add().您的mRender功能将为您完成.相反,你需要通过,college_id因为mRender它需要它来产生一个按钮.

通常,您需要以row.add()Ajax脚本admin/get_college使用的相同格式传递行数据.