2013-03-16 89 views
3

我在我的項目中使用了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

回答

4

剛剛從服務器/ 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

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

爲我工作。

0

對於那些尋找一個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是從我在代碼中看到的。