Javascript 使用变量的DataTables js columnDefs呈现函数
我试图传递一个用于DataTable的columnDefs呈现函数属性的变量,但这样做时总是出错Javascript 使用变量的DataTables js columnDefs呈现函数,javascript,datatables,Javascript,Datatables,我试图传递一个用于DataTable的columnDefs呈现函数属性的变量,但这样做时总是出错 if (data == 'i') { return 'In'; } return data; 如果我将该变量中包含的同一个函数直接作为render属性放置,则该函数不会出现任何问题,并且可以获得所需的功能 if (data == 'i') { return 'In'; } return data; 尝试使用变量时出现的错误: DataTables警告:表id=DataTables
if (data == 'i') {
return 'In';
}
return data;
如果我将该变量中包含的同一个函数直接作为render属性放置,则该函数不会出现任何问题,并且可以获得所需的功能
if (data == 'i') {
return 'In';
}
return data;
尝试使用变量时出现的错误:
DataTables警告:表id=DataTables\u table\u 0-为第0行第6列请求的未知参数“someColumn”
function WriteReportTable(data, dataTableSettings) {
var renderFunction = function (data) {
if (data == 'i') {
return 'In';
}
return data;
};
var tableSetUp = [$('#tableReportDataHeader'), $('#tableReportDataFooter')];
for (var i = 0; i < tableSetUp.length; i++) {
var th = $('<tr/>').appendTo(tableSetUp[i]);
for (var j = 0; j < dataTableSettings["columnDisplayNames"].length; j++) {
th.append('<th>' + dataTableSettings["columnDisplayNames"][j] + '</th>');
}
}
//get column names from json data
var columns = [];
columnNames = Object.keys(data[0]);
for (var i in columnNames) {
columns.push({ data: columnNames[i], title: dataTableSettings["columnDisplayNames"][i] });
}
RDataTable = $('.rDataTable').DataTable({
pageLength: 10,
data: data,
sDom: '<"#selectDtBtn.selectDtBtn"><"#showInfoBtn.optionBtn">T<"html5buttons"B>fgitlp',
responsive: true,
autoWidth: false,
bAction: false,
columns: columns,
order: dataTableSettings["order"],
columnDefs: [{
targets: dataTableSettings["columnDefsTargets"],
render: function (data, type, row) {
renderFunction(data);
}
}]
});
}
if (data == 'i') {
return 'In';
}
return data;
然后它就如预期的那样工作了。不知道如何让它与变量一起工作。谢谢 它不工作,因为它没有返回任何东西。您需要返回函数返回的内容
if (data == 'i') {
return 'In';
}
return data;
render: function (data, type, row) {
return renderFunction(data);
}
或者用一个只调用另一个函数的函数来代替
if (data == 'i') {
return 'In';
}
return data;
render: renderFunction