2016-08-22 76 views
0

我的服務器返回數據架構這樣的設置下一個頁面網址:如何使用jQuery的DataTable

{ 
    "count": 161, 
    "next": "http://127.0.0.1:8000/api/example/?page=3", 
    "previous": "http://127.0.0.1:8000/api/example/?page=1", 
    "results": [ 
     { 
      "name": "foo", 
      "version": "bar", 
     } 
    ] 
} 

我用數據表是這樣的:

$(document).ready(function() { 
    $('#example').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": "/api/example/?page=1" 
    }); 
}); 

我怎樣才能更改數據源的URL :

"next": "http://127.0.0.1:8000/api/example/?page=3", 

當我點擊DataTable下一個或上一個按鈕。如何定製參數(頁面在這裏)讓DataTable知道?

從這裏Object data source 的例子的模式是這樣的:

{ 
    "draw": 3, 
    "recordsTotal": 57, 
    "recordsFiltered": 57, 
    "data": [ 
    { 
     "first_name": "Airi", 
     "last_name": "Satou", 
     "position": "Accountant", 
     "office": "Tokyo", 
     "start_date": "28th Nov 08", 
     "salary": "$162,700" 
    }, 
    ] 
} 

每次我點擊下一步按鈕,在「畫」參數將返回當前頁面number.Should我把它添加到我的服務器響應?或者我應該在「next」或「previous」按鈕上定製onclick事件,使用ajax獲取數據然後重繪表格?我也看看這裏的插件Pagination plug-ins,我應該使用它嗎?

+0

你想改變點擊分頁鏈接的網址? –

+0

我只想從「下一個」中獲取數據,但不知道該做些什麼 – Windsooon

回答

0

這項工作,你可以設置限制和偏移來處理這個。

$(document).ready(function() { 
     $('#pirate_table').DataTable({ 
      "processing": true, 
      "serverSide": true, 
      "bPaginate": true, 
      "ajax": function(data, callback, settings) { 
        $.get('/api/example/', { 
         limit: data.length, 
         offset: data.start, 
         }, function(res) { 
          callback({ 
           recordsTotal: res.count, 
           recordsFiltered: res.count, 
           data: res.results 
          }); 
         }); 
      }, 
      "columns": [ 
       { "data": "name" }, 
       { "data": "version" } 
      ] 
     }); 
    });