空Ajax响应的数据表错误

空Ajax响应的数据表错误

问题描述:

我在我的项目中使用了Datatable 1.9.2。我通过AJAX在其中显示申请人名单。还有一个用于过滤数据的过滤器表单。一切工作正常,但问题是,如果我筛选记录和数据库没有返回数据然后datatable在POPUP中生成一个错误。有人可以指导我如何处理与数据表空ajax响应,如何处理空数据集。

下面是我使用空Ajax响应的数据表错误

$('#applicants_list').dataTable({ 
"bProcessing": true, 
"bServerSide": true, 
"sPaginationType": "bootstrap",     
"sDom": '<"H"Cfr>t<"F"ip>', 
"oColVis": { 
    "activate": "mouseover", 
    "aiExclude": [ 10 ], 
    "sAlign": "left" 
}, 
"bFilter": false, 
"sAjaxSource": script.php, 
"aoColumns": [        
     {"bSortable": true }, // attachments 
     {"bSortable": true }, //Subject Line 
     {"bSortable": true }, // Date Sent 
     {"bSortable": true }, // File Name 
     {"bSortable": false }, 
     {"bSortable": false }, 
     {"bSortable": true }, 
     {"bSortable": true }, 
     {"bSortable": true }, 
     {"bSortable": false } 
], 
"aaSorting": [[0, 'desc']] 
}); 
+0

好问题。 +10 – 2016-09-01 06:34:35

刚刚从服务器/ AJAX响应返回下列数据时滤波器返回记录是空的,将显示空的记录消息的代码。

echo '{ 
    "sEcho": 1, 
    "iTotalRecords": "0", 
    "iTotalDisplayRecords": "0", 
    "aaData": [] 
}'; 
+0

谢谢,它现在正在工作:) – Sheraz 2013-03-16 14:06:04

+1

我有一个微调,显示与spinner.spin(目标);并停止与spinner.stop();.当从服务器获取数据并在数据到达时停止,微调器显示。无论如何,即使空白数据像这个例子一样,我想停止微调。我怎么能做到这一点? – Oualid 2013-10-18 06:55:44

+0

好东西。对于较新的DataTable(在编写本文时为1.10),使用'{“draw”:0,“recordsTotal”:0,“recordsFiltered”:0,“data”:[]}'。 – 2015-10-14 19:23:29

echo json_encode(array('aaData'=>'')); 

为我工作。

对于那些寻找一个ASP.NET的解决方案,这是一个使用JSON.NET一个例子:

JObject jObj = new JObject(
    new JProperty("draw", 0), 
    new JProperty("recordsTotal", 0), 
    new JProperty("recordsFiltered", 0), 
    new JProperty("data", new JArray()) 
); 

return Content(jObj.ToString(Formatting.None), "application/json"); 

在这里其他的答案中的参数是数据表的旧版本,我认为它仍然可能是倒退与他们兼容,但至少aaData是从我在代码中看到的。