2015-06-18 50 views
1

我怎樣才能實現服務器端分頁使用數據表?目前,在頁面加載時,我正在初始化數據表&,通過Java Spring控制器填充來自數據庫的數據(JSON)。我通過在查詢字符串中傳遞搜索條件來進行Ajax調用。由於我們有數十萬條記錄,因此我們計劃在服務器端分頁以提高性能。服務器端分頁與jQuery數據表插件

爲此,後端服務開發人員給了我一項服務,該服務向我提供每頁記錄,但需要輸入如頁碼,沒有頁面記錄,排序,排序列

我必須重寫數據表實現以通過Ajax請求查詢字符串將這些傳遞給服務。我不知道是否有辦法做到這一點。

+0

一些代碼,將有助於理解這個問題?使用 – Vishal

回答

3

如何使用數據表實現服務器端分頁?

欲瞭解更多信息請查看documentation

$(document).ready(function() { 
    $('#example').dataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": "../server_side/scripts/server_processing.php" 
    }); 
}); 

我會建議你再看一看的docs

使用服務器端處理向服務器請求時, 數據表會爲了讓服務器 知道什麼數據需要 我不會複製所有的參數,但只有極少數的發送以下數據他們在這裏:

start, length, order[i][column] 

這些都是你,我想後的人。

牢記:

一旦數據表取得了對數據的請求,以發送到服務器的上述參數 ,它期望JSON數據被返回到它,與 以下參數設置:

你想看看自己的屬性,爲了不讓這篇文章太長。

+0

我的後臺服務代碼如何獲得頁碼,每頁記錄,分類訂單和分欄等所需的參數。這些應該從請求對象中拾取。不知道這是如何工作的。我不使用PHP,而是Java。 – JavaYouth

+0

@JavaYouth現在更清楚了嗎? :) – noobed

+0

非常感謝您指導我的文檔。 – JavaYouth

0

準備使用代碼:只需按要求

$("#myTable1").DataTable({ 
     "oLanguage": { 
      "sSearch": "Search Address:" 
     }, 
     "iDisplayLength": 50, 
     "processing": true, // for show progress bar 
     "serverSide": true, // for process server side 
     "filter": true, // this is for disable filter (search box) 
     "orderMulti": false, // for disable multiple column at once 
     "ajax": { 
      "url": url, 
      "type": "POST", 
      "datatype": "json" 
     }, 
     "columns": [ 
       { "data": "ProviderName", "name": "ProviderName", "autoWidth": true }, 
       { "data": "ProviderName", "name": "ProviderName", "autoWidth": true }, 
       { "data": "cpTitle", "name": "cpTitle", "autoWidth": true }, 
       { "data": "cpAddress", "name": "cpAddress", "autoWidth": true }, 
       { "data": "cpPriceHourly", "name": "cpPriceHourly", "autoWidth": true }, 
       { "data": "cpCreatedDate", "name": "cpCreatedDate", "autoWidth": true }, 
       { "data": "cpId", "name": "cpId", "autoWidth": true } 
     ], 

     "columnDefs": [{ 
      "targets": 0, 
      "data": null, 
      "render": function (data, type, full, meta) { 
       cnt++; 
       if (cnt != 0) { 
        $("#divExcel").show(); 
       } 
        return meta.settings._iDisplayStart + meta.row + 1; 
       } 
      }] 

    });