数据表警告 - ''为行x请求了未知参数FirstName“

时间:2015-01-18 15:14:06

标签: jquery jquery-datatables

我的数据表代码如下

 <table id="users" class="table table-striped table-bordered">
        <thead>
               <tr>
                     <th>FirstName</th>
                     <th>LastName</th>
                     <th>Name</th>
                      <th>Username</th>
                       <th>Password</th>
                       <th>Email</th>
                      <th>Role</th>
                 </tr>
         <thead>
         <tbody>

         </tbody>
</table>
```

相应的javascript如下

 userTable = $("#users").DataTable({
    serverSide: true,
    ajax: {
        url: "scripts/getusers.php",
        type: "POST",
        dataType: "json"
    },
    "columns": [
        {data: "FirstName", "orderable": true,"searchable":true,visible:false},
        {data: "LastName", "orderable": true,"searchable":true,visible:false},
        {data : null,
            "render":function(data, type, row, meta ){
            return row['FirstName']+','+row['LastName'];
        }},
        {data: "Username", "orderable": true,"searchable":true},
        {data: "Password", "orderable": true,"searchable":true,
        "render":function(data, type, row, meta ){
            return '********';
        }},
        {data: "Email", "orderable": true,"searchable":true},
        {data: "Role", "orderable": true,"searchable":true,
        "render":function(data, type, row, meta ){
            return data == 1?'Root':(data == 2?'Admin':'User');
        }}
    ],
    "language": {
        "emptyTable": "Seems no users were registered yet"
    },
    dom: 'T<"clear">lfrtip'
});

当我尝试按如下方式添加行时,虽然成功添加了行,但它显示警告

  

userTable.row.add([data.FirstName,data.LastName,data.Username,data.Password],data.Email,data.Role).draw();

     

'请求第10行的未知参数FirstName'(我的默认长度为10)

要更新行,我选择的行如here所示,然后调用以下

  

userTable.row( '选择'。)的数据([data.FirstName,data.LastName,data.Username,data.Password],data.Email,data.Role).draw();

同样的错误出现在上面。这是说

  

'为行x'请求了未知参数FirstName(其中x是我正在更新的行号)

     

在这两种情况下,行都会成功添加和更新。但是我收到了警告。

我想我为第三列写的渲染函数存在一些问题。

同样用于更新(如上所示)我调用draw方法删除所选类,这意味着我不能多次调用上面的更新语句。还有其他选择。实际上,在模式对话框中调用上述更新语句。因此必须允许同一行多次更新,如果调用draw()来清除'selected'类,则无法进行更新。对此有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

我得到了答案。当控件开始渲染列时,它期待对象,我正在给出一个数组,当我更新行而不是传递数组时,我必须传递整个对象。在添加期间,由于我的代码中存在错误,'data'对象没有名为FirstName的属性。这就是它发出警告的原因。但是表格正在更新,因为我正在调用draw()方法来重新加载整个表格。