Javascript 使用ajax时如何处理JQuery数据表中的空值

Javascript 使用ajax时如何处理JQuery数据表中的空值,javascript,jquery,ajax,datatables,Javascript,Jquery,Ajax,Datatables,当我的页面尝试加载数据表时,出现以下错误: DataTables警告:表id=table1-请求的未知参数“0” 对于第0行,第0列。有关此错误的详细信息,请参阅 当我使用随机值的虚拟数据集时,表加载工作正常,但是我想显示的数据有许多空值,这可能就是问题出现的原因。我想知道如何最好地设置DataTable设置,以便识别空值并将其显示为空字符串 我尝试添加一个渲染函数来解决这个问题(改编自datatables of icial评论中描述的一个示例),但它目前不起作用,我不确定如何最好地实现它,或

当我的页面尝试加载数据表时,出现以下错误:

DataTables警告:表id=table1-请求的未知参数“0” 对于第0行,第0列。有关此错误的详细信息,请参阅

当我使用随机值的虚拟数据集时,表加载工作正常,但是我想显示的数据有许多空值,这可能就是问题出现的原因。我想知道如何最好地设置DataTable设置,以便识别空值并将其显示为空字符串

我尝试添加一个渲染函数来解决这个问题(改编自datatables of icial评论中描述的一个示例),但它目前不起作用,我不确定如何最好地实现它,或者是否最好使用另一种方法

jQuery:

function setupData() {
    $(document).ready(function () {
        $('#table1').dataTable({
            "dom": 'B<clear>frtip',
            "buttons": [
                'copy', 'csv', 'excel', 'pdf', 'print'
            ],
            "lengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
            "scrollX": true,
            "scrollY": true,
            "ajax": {
                "url": "/index_get_data",
                "dataType": "json",
                "dataSrc": "data",
                "contentType": "application/json"
            },
            responsive: true
        });
    });
}
$(window).on("load", setupData);

有130多列(这可能是可变的),数据每天更新,许多列可能包含空数据。我想找到一种方法来显示dataTable中的数据,其中的列不必在dataTable函数中显式声明。感谢您提供的帮助。

使用此代码,您不必担心ajax数据

$('.dataTable').dataTable({
摧毁:没错,
是的,
搜索:是的,
排序:对,
“ajax”:{
url:“{url('users/datatable')}}”,
键入:“POST”,
标题:{
'X-CSRF-TOKEN':'{{CSRF_TOKEN()}}'
},
'数据':{}
},
“栏目”:[
{data:'id'},
{data:'name'},
{数据:'电子邮件'},
{数据:'membership_no'},
{data:'is_active'},
{数据:'varsity_session'},
{数据:'到期金额'},
{数据:'已付金额'},
{数据:'在'}创建_,
{数据:'上次交易日期'},
{数据:'操作'},
],
“columnDefs”:[
{“bSortable”:false,“targets”:[1,6]},
{“searchable”:false,“targets”:[4,6]}
],
长度菜单:[[10,50,100,-1],[10,50,100,“全部”],,
页长:10,
“dom”:“Blfrtip”,
按钮:[
{
扩展:“复制”,
文本:“复制”,
类名:“btn btn主”,
出口选择:{
列:'th:not(:last child)'
}
},
{
扩展:“csv”,
文本:“csv”,
类名:“btn btn警告”,
出口选择:{
列:'th:not(:last child)'
}
},
{
扩展:“excel”,
文本:“excel”,
类名:“btn btn危险”,
出口选择:{
列:'th:not(:last child)'
}
},
{
扩展:“pdf”,
文本:“pdf”,
类名:“btn btn成功”,
出口选择:{
列:'th:not(:last child)'
}
},
{
扩展:“打印”,
文本:“打印”,
类名:“btn btn信息”,
出口选择:{
列:'th:not(:last child)'
}
}
]
});

});使用此代码,您不必担心ajax数据

$('.dataTable').dataTable({
摧毁:没错,
是的,
搜索:是的,
排序:对,
“ajax”:{
url:“{url('users/datatable')}}”,
键入:“POST”,
标题:{
'X-CSRF-TOKEN':'{{CSRF_TOKEN()}}'
},
'数据':{}
},
“栏目”:[
{data:'id'},
{data:'name'},
{数据:'电子邮件'},
{数据:'membership_no'},
{data:'is_active'},
{数据:'varsity_session'},
{数据:'到期金额'},
{数据:'已付金额'},
{数据:'在'}创建_,
{数据:'上次交易日期'},
{数据:'操作'},
],
“columnDefs”:[
{“bSortable”:false,“targets”:[1,6]},
{“searchable”:false,“targets”:[4,6]}
],
长度菜单:[[10,50,100,-1],[10,50,100,“全部”],,
页长:10,
“dom”:“Blfrtip”,
按钮:[
{
扩展:“复制”,
<table contenteditable='true' id="table1" class="tableBody dataTable table-striped table-bordered nowrap display" style="width:100%" >
    <thead>
        <tr>
            {%  for item in cols %}
                <th>{{ item }}</th>
            {% endfor %}
        </tr>
    </thead>
</table>
"render": function jsRenderCOL(data, type, row, meta) {
    var dataRender;
    if (data == null) {
        dataRender = "";
    }
    return dataRender;
}
$('#table1').dataTable( {
  "columnDefs": [ {
      "targets": (pass a variable in here that you have calculated based on the number of columns to render) 
      "defaultContent": ""
    } ]
} );