我正在使用Jquery Datatables加載從服務器端通過ajax調用獲得的數據數組(aaData)。我不想一次拉出整個數據,而是每次用戶在Datatables分頁中單擊「prev」或「next」時,都需要進行一次加載數據的Ajax請求。對數據表中每個頁面的服務器端數據的Ajax請求
這是如何實現的?我想僅爲該頁面進行ajax調用並獲取結果。
以下是我正在撥打電話的JavaScript代碼。
$.ajax({
type: "GET",
url: "ajaxBacklog",
contentType: 'application/json',
data: null,
dataType: 'json',
success: function(json){
oTable = $("#backlogTable").dataTable({
"aaData": json.aaData,
"bProcessing": true,
"bServerSide": true,
"sPaginationType": "full_numbers",
"bJQueryUI": true,
"bRetrieve": true,
"bPaginate": true,
"bStateSave": true,
"bSort": true,
"aaSorting": [[ 4, "desc" ]],
"iDisplayLength": 25,
"oLanguage": {
"sProcessing": "<img src='resources/images/loader.gif'/>",
"sEmptyTable": "No records found."
},
"aoColumns": [
{ "sClass": "alignCenter"},
{ "sClass": "left"},
{ "sClass": "left"},
{ "sClass": "left"},
{ "sType": 'date-uk', "sClass":"datecolumn"},
{ "sType": 'date-uk', "sClass":"datecolumn"},
{ "sClass": "left"},
{ "sClass": "left"}
],
"error": function() {
alert("Failed to load Data");
}
});
}
}
);
我也跟着數據表的server side processing以及但沒有任何工作。
我有一個數組列表的字符串數組列表(基本上我的aaData),我從數據庫中獲取數據並通過它循環後填充,一旦我的aaData被填充,其顯示在表中。我怎樣才能修改我的代碼,使事情工作? (BacklogVO obj:backlogVO){ ArrayList row = new ArrayList (); row.add(addActionColumn()); row.add(obj.getTask()); row.add(obj.getTaskType()); row.add(obj.getOwnedBy()); row.add(obj.getStatus()); row.add(obj.getPriority()); aaData.add(row); }」 –
2013-04-12 04:57:06
這裏是例如用於JSON格式:http://datatables.net/release-datatables/examples/server_side/post.html – 2013-04-12 07:08:48
服務器響應該我得到的是這個 '{ 「aaData」:[ [ \t \t 「
, \t \t 」AB MIDT的數據處理「, \t \t 」售前「, \t \t 」Kuldeep辛格「, \t \t 」2013年11月4日「, \t \t」 17-04 -2013「, \t \t 「WIP」, \t \t 「高」 \t \t] \t] }' 但是還是我不能把它適合我的需要。我對數據表的瞭解是,它將整個數據存儲在瀏覽器的內存中,並且由於它具有整個數據,所以分頁,排序和過濾性能非常快。我需要在每個分頁號碼點擊一個ajax呼叫,告訴服務器每次帶來25條記錄。這怎麼能實現? –
2013-04-12 07:33:49