har*_*B10 1 javascript datatable jquery json
我有一个包含一些内容和编辑按钮的表格。这是生成数据表的代码:
$(document).ready(function() {
var params = {};
callFunction("getAgentList", params,
function(bSuccess, res) {
var table = $('#example').DataTable({
data: res,
"columns": [
{ "data": "ID" },
{ "data": "Name" },
{ "data": "AltName1" },
{ "data": "AltName2" },
{ "data": "AltName3" },
{ "data": "AltName4" },
{ "data": "AltName5" },
{ "data": "AltName6" },
{ "data": "AltName7" },
{ "data": "AltName8" },
{ "data": "AltName9" },
{ "data": "AltName10" },
{
"orderable": false,
"data": null,
"defaultContent": '<button class="btn btn-warning" id='+res+' onclick="edit(this)">Edit</button>'
},
],
"order": [
[1, 'asc']
]
});
}
);
});
Run Code Online (Sandbox Code Playgroud)
每行都应该有一个用于编辑指定行的编辑按钮。为此,我需要一个resJSON 格式的 ID 。但我不确定如何获取每个编辑按钮的 ID?
现在,如果我只放res我得到 Object 或者res.ID它是未定义的。这是有道理的,因为我需要遍历数组...
任何人?
编辑
这是resJSON:
{ AltName1: "Test1", AltName10: "", AltName2: "Test1Alt", AltName3: "Test1", AltName4: "Test1", ID: "1" }
{ AltName1: "Test2", AltName10: "", AltName2: "", AltName3: "", AltName4: "", ID: "2" }
Run Code Online (Sandbox Code Playgroud)
如果我将 id 设置为 <button class="btn btn-warning" id='+res[0].ID+' onclick="edit(this)">Edit</button>
然后所有按钮都具有相同的 ID。
将 JavaScript 中的所有首字母改为小写,然后使用 datatable 的 render 函数:
{ "targets": 0, "data": 'iD' },
{ "targets": 1, "data": 'name' },
{ "targets": 2, "data": 'altName1' },
{ "targets": 3, "data": 'altName2' },
{ "targets": 4, "data": 'altName3' },
{ "targets": 5, "data": 'altName4' },
{ .... },
{
"targets": 6,
"data": 'iD',
"render": function (data, type, row, meta) {
return '<button class="btn btn-warning" id='+data+' onclick="edit(this)">Edit</button>'
}
}
Run Code Online (Sandbox Code Playgroud)
在渲染函数中,您可以通过不同的方式访问 ID: 1 : "data" : 'iD' 然后使用数据(就像我所做的那样) 2 : "data" : 'anything you want' 然后使用:row.iD
另请注意,您需要在 ID 前添加前缀以避免重复的 ID(我总是这样做)