2015-06-16 52 views
1

我使用了最新的jQuery數據表,目前我能夠獲得在表中的數據,但每次我試圖尋找我看不出有任何變化表jQuery中搜索數據表

以下是我的代碼

init: function(){ 
    $('#paginatedData').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": { 
      url: "/bugbounty/viewreports", 
      dataSrc: "reportList" 
     }, 
     "columns": [ 
      {"data": "reportStatus"}, 
      {"data": "reportID", "render": function(data, type, full, meta){ 
       return '<a href="reportsummary">'+ data +'</a>'; 
      }}, 
      {"data": "summary"}, 
      {"data": "lastUpdatedDate"}, 
      {"data": "createdDate"} 
     ] 
    }); 

} 

我是否需要設置更多的附加值,不應將默認搜索設置爲true?

編輯:這是我的JSON響應

{reportList:[{reportID: 'EIBBP-460', eBayUserID: '', reportStatus: '新建', 總結:「BugBounty報告創建通過Raj', lastUpdatedDate:'2015-06-16 04:27', createdDate:'2015-06-16 04:27', paypalLoginID:'[email protected]'}, {reportID:'EIBBP -459' , eBayUserID: '', reportStatus: '新建', 總結:「BugBounty報告由R創建AJ」, lastUpdatedDate: '2015年6月16日4時25', createdDate: '2015年6月16日4時25', paypalLoginID: '[email protected]'}]}

+0

由於您啓用了服務器端處理模式('「serverSide」:true'),因此應該在[服務器端](https://datatables.net/manual/server-side)上執行搜索和過濾。 。你在'/ bugbounty/viewreports'處理搜索請求時編寫腳本嗎?請發佈您的JSON響應。 –

+0

@ Gyrocode.com我已附加了我的JSON響應的帖子,我將如何得到有關在服務器端添加搜索和過濾 – Raj

回答

0

您正在混淆客戶端和服務器端處理模式。從manual

數據表具有處理數據的兩種不同的模式(排序,搜索,數據等):

客戶端處理 - 完整的數據集被加載的前期和數據處理在瀏覽器中完成。

服務器端處理 - Ajax請求對每個表重繪製成,具有隻對每個顯示所需的數據返回。數據處理在服務器上執行。

在這兩種模式下,數據都可以從服務器加載,但名稱暗示了將執行處理(分頁/排序/過濾)的位置。

你必須啓用服務器端處理模式("serverSide":true),搜索和過濾應該在服務器端完成。由於您的腳本沒有編程爲這樣做,這就是爲什麼你看不到訂購/過濾工作。

你的JSON響應是服務器端處理,see manual正確響應結構有效的客戶端處理,但沒有。

解決方案1:禁用服務器端處理模式

您可以禁用服務器端處理模式,如果你沒有在表中的許多行。要啓用客戶端,請忽略serverSide選項或將其設置爲false。在這種情況下,使用下面的代碼:

$('#paginatedData').DataTable({ 
    "ajax": { 
     url: "/bugbounty/viewreports", 
     dataSrc: "reportList" 
    }, 
    "columns": [ 
     {"data": "reportStatus"}, 
     {"data": "reportID", "render": function(data, type, full, meta){ 
      return '<a href="reportsummary">'+ data +'</a>'; 
     }}, 
     {"data": "summary"}, 
     {"data": "lastUpdatedDate"}, 
     {"data": "createdDate"} 
    ] 
}); 

解決方案2:添加服務器端處理

或者,如果你有很多排在你的餐桌,你仍然可以用戶服務器端處理模式爲了提高性能,您需要調整腳本以根據提供的參數返回正確的數據結構。

DataTables的發行版中包含一個示例PHP腳本(server_processing.phpssp.class.php),在\examples\server_side\scripts\文件夾中演示了實現。

+0

這只是一個樣本的數據,它實際上返回的數據比我張貼的更多,我也忘了添加dataSrc在我的JSON我已經糾正它 – Raj

+0

@Raj,我根據你的更新更正了答案,'dataSrc'然後是正確的。 –

+0

你可以提供我的鏈接,他們顯示在服務器端搜索的片段 – Raj