问题描述
我需要将数据从作为数组的 AJAX 数据表列传递给 JS 中的函数
这是我的 script.js
table = $("#table").DataTable({
ajax: {
url: "/Object/GetAllDetail",data: { },type: 'POST',datatype: "json",dataSrc: "",dataFilter: function (data) {
var json = jQuery.parseJSON(data);
json.recordsTotal = json.TotalCount;
json.recordsFiltered = json.TotalCount;
json.data = json.list;
return JSON.stringify(json); // return JSON string
},},"columns": [
{
"data": null,"className": "checkBox","render": function (data,type,full,Meta) {
var ACT = '<div class="form-check">';
ACT += '<input type="checkBox" name="CheckBoxDatatbl" onclick="display(' + data.text + ',' + data.ArrayNum + ')" + ' >';
ACT += '</div >';
return ACT;
}
}]
}
function display(text,array){
return text + " : " + array;
}
假设
data.text = "First Row";
data.ArrayNum = [1,3,5];
问题是ajax在进入这样的函数之前将data.ArrayNum转换为数组:
<input type="checkBox" name="CheckBoxDatatbl" **onclick="Sum("First Row",1,5)"** >
所以 display() 只读取 display("First Row",1) 而不是整个数组。
如何加入函数中的所有数组?
解决方法
一个快速的技巧是用 []
包裹你的数组
ACT += '<input type="checkbox" name="CheckBoxDatatbl" onclick="Display(' + data.text + ',[' + data.ArrayNum + '])" + ' >';