这是我现有的分页代码,因为roleList
未定义,我收到错误
我不知道如何在dataTable()
内使用ajax响应。我做错了什么?
在过去的3天里,我对这个部分感到震惊,但是我找了很长时间的解决方案,但是不能很好。
function empRoles() {debugger
table = $('#mydata').DataTable({
"ajax": {
"type": 'POST',
"dataType": 'json',
"url": '/Admin/getRolesList',
"dataSrc": function (response) {
var roleList = response;
console.log(roleList)
},
"data": {
"json": JSON.stringify(roleList)
}
},
"columns": [{
"data": "sNo"
}, {
"data": "roleName",
"className": "roleName"
}, {
"data": "roleName",
"render": (data, type, row, meta) => `
<button class="btn edit btn-info" id="edit${row.sNo}">
<i class="fa fa-pencil"></i>
Edit
</button>
<button class="btn update btn-success" id="update${row.sNo}">
<i class="fa fa-floppy-o"></i>
Update
</button>
<button class="btn dlt btn-danger" data-toggle="modal" data-target="#confirm" id="delete${row.sNo}">
<i class="fa fa-trash-o"></i>
Delete
</button>
`
,
"sortable": false
}],
"createdRow": (row, data, dataIndex) => {
$(row).attr("id", "row" + data.sNo);
$('td:eq(1)', row).attr("id", "name" + data.sNo);
}
});
}
请提出任何建议..
答案 0 :(得分:0)
如果我正确理解了这个问题,我相信最简单的解决方案就是在选项之外简单地初始化roleList
变量。
function empRoles() {
var roleList = []; // or whatever the initial data value should be
var table = $('#mydata').DataTable({
// ...
"dataSrc": function (response) {
roleList = response;
console.log(roleList)
},
"data": {
"json": JSON.stringify(roleList)
}
// ...
答案 1 :(得分:0)
代码部分
"data": {
"json": JSON.stringify(roleList)
}
在
之前执行"dataSrc": function (response) {
roleList = response;
console.log(roleList)
}
因此,变量roleList不适用于ajax.data。
您可以通过在浏览器上添加断点来验证这一点。
在这里,您基本上尝试访问输入变量并将其传递回服务器。使用此链接中提到的函数自定义ajax部分也可以实现相同的目的 -