Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用变量的DataTables js columnDefs呈现函数_Javascript_Datatables - Fatal编程技术网

Javascript 使用变量的DataTables js 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

我试图传递一个用于DataTable的columnDefs呈现函数属性的变量,但这样做时总是出错

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