我的页面上有一个预定义的数据表,它是通过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();
})
答案 0 :(得分:1)
这个问题的答案是命名添加的字段与进入字段的数据相同。不基于该字段的名称。
$('.assignToSelf').on('click', function () {
var rowNode = escalationTable
.row.add({
"data1": 'ffffff',
"data2": 'dfsdfsdf',
"data3": 'fffff'
})
.draw(false)
.node();
})