Jquery Datatables 請求參數及接收參數處理
/**
* Created by wb-wuyifu on 2016/8/9.
*/
/**
* Created by wb-wuyifu on 2016/8/9.
*/
var $ = jQuery;
(function () {
var App = function () {
var self = this;
self = $.extend(this, {
api: {
ajax_list: '*****'
, url_monitor: '*****'
},
const:{
gridIndex : 0, // 表格索引序號
},
/**
* 應用初始化
*/
init: function () {
self.initComponents();
},
/**
* 組件初始化
*/
initComponents: function () {
// 初始化 表格
self.jGrid = $("#searchGrid").DataTable({
ajax: {
url: self.api.ajax_list,
// 請求到的數據
dataSrc: function (data) {
// 請求到數據時 重置 索引號
self.const.gridIndex = 0;
$.extend(data, {
iTotalDisplayRecords: data.count,
iTotalRecords: data.count,
});
return data.rows;
},
dataType: 'json',
crossDomain: true,
// 延遲加載
deferRender: true,
// 提交參數
data: function (param) {
if (self.jGrid) {
param.pageSize = self.jGrid.page.len(); // 取得每頁顯示記錄數返回給服務器
}
// 根據起始記錄索引 重新計算頁碼
if(param.start){
param.pageNo = Math.ceil(param.start / (param.pageSize * 1.0)) + 1;
}else{
param.start = 1;
}
return param;
}
},
serverSide: true,
bServerSide :true,
ordering: false,
info: true,
lengthChange: true,
searching: false,
scrollCollapse: true,
pageLength: 30,
bAutoWidth: true,
stateSave :false,
// 自定義每頁記錄數 下拉菜單
lengthMenu: [
[10, 20, 30, 50, 100],
['10', '20', '30', '50', '100']
],
oLanguage: {
"sProcessing": "數據加載中……",
"sSearch": "快速檢索:",
"sLengthMenu": "每頁顯示 _MENU_ 條",
"sInfo": "從 _START_ 到 _END_ 條,總共 _TOTAL_ 條記錄",
"sZeroRecords": "沒有記錄",
"sInfoEmpty": "暫無記錄",
"sInfoFiltered": "(一共有 _MAX_ 條記錄)",
"oPaginate": {
"sFirst": "首頁",
"sPrevious": " 上一頁 ",
"sNext": " 下一頁 ",
"sLast": " 末頁 "
}
},
columns: [
{
data: null,
defaultContent: '',
render: function (data, type, row) {
return ++self.const.gridIndex;
}
},
{
data: 'a',
defaultContent: ''
},
{
data: 'b',
defaultContent: ''
},
{
data: 'c',
defaultContent: ''
},
{
data: 'd',
defaultContent: ''
},
{
data: 'e',
render: function (data, type, row) {
var display = [
row.a
, ' / '
, row.b
, ' / <br/>'
, row.c
].join('');
return display;
},
},
]
});
}
});
self.init();
}.call();
})();