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