使用DataTable插件實(shí)現(xiàn)異步加載數(shù)據(jù)
table部分代碼
<table class="table table-bordered table-striped" id="table-main">
<thead>
<tr>
<th>用戶名</th>
<th>渠道名</th>
<th>游戲名</th>
<th>結(jié)果</th>
<th>耗時(shí)</th>
<th>創(chuàng)建時(shí)間</th>
</tr>
</thead>
</table>
異步加載數(shù)據(jù)并實(shí)現(xiàn)定制化
下面是簡(jiǎn)單例子, 其中 table-main 的初始化元素為table的id。
$('#select-game').select2(); // 初始化搜索下拉框
// 表格漢化列表
var table_lang = {
"sProcessing": "處理中...",
"sLengthMenu": "每頁(yè) _MENU_ 項(xiàng)",
"sZeroRecords": "沒(méi)有匹配結(jié)果",
"sInfo": "當(dāng)前顯示第 _START_ 至 _END_ 項(xiàng),共 _TOTAL_ 項(xiàng)。",
"sInfoEmpty": "當(dāng)前顯示第 0 至 0 項(xiàng),共 0 項(xiàng)",
"sInfoFiltered": "(由 _MAX_ 項(xiàng)結(jié)果過(guò)濾)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中數(shù)據(jù)為空",
"sLoadingRecords": "載入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首頁(yè)",
"sPrevious": "上頁(yè)",
"sNext": "下頁(yè)",
"sLast": "末頁(yè)",
"sJump": "跳轉(zhuǎn)"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
};
//初始化表格
var table_main = $("#table-main").dataTable({
language:table_lang, // 提示信息
autoWidth: false, // 禁用自動(dòng)調(diào)整列寬
lengthMenu: [25, 50, 100],
stripeClasses: ["odd", "even"], // 為奇偶行加上樣式,兼容不支持CSS偽類的場(chǎng)合
processing: false, // 隱藏加載提示,自行處理
serverSide: true, // 啟用服務(wù)器端分頁(yè)
searching: true, // 啟用原生搜索
orderMulti: true, // 啟用多列排序
order: [], // 取消默認(rèn)排序查詢,否則復(fù)選框一列會(huì)出現(xiàn)小箭頭
renderer: "bootstrap", // 渲染樣式:Bootstrap和jquery-ui
pagingType: "simple_numbers", //分頁(yè)樣式:simple,simple_numbers,full,full_numbers
columnDefs: [{
"targets": 'nosort', // 列的樣式名
"orderable": false // 包含上樣式名‘nosort'的禁止排序
}],
ajax: function (data, callback, settings) {
//封裝請(qǐng)求參數(shù)
var param = {};
param.limit = data.length; // 頁(yè)面顯示記錄條數(shù),在頁(yè)面顯示每頁(yè)顯示多少項(xiàng)的時(shí)候
param.start = data.start; // 開(kāi)始的記錄序號(hào)
param.page = (data.start / data.length)+1; // 當(dāng)前頁(yè)碼
//ajax請(qǐng)求數(shù)據(jù)
$.ajax({
type: "GET",
url: "getRecodeList",
cache: true, // 開(kāi)啟緩存
data: param, // 傳入組裝的參數(shù)
dataType: "json",
success: function (result) {
// console.log(result);
//setTimeout僅為測(cè)試延遲效果
setTimeout(function () {
//封裝返回?cái)?shù)據(jù)
var returnData = {};
returnData.draw = data.draw; // 這里直接自行返回了draw計(jì)數(shù)器,應(yīng)該由后臺(tái)返回
returnData.recordsTotal = result.total; // 返回?cái)?shù)據(jù)全部記錄
returnData.recordsFiltered = result.total;// 后臺(tái)不實(shí)現(xiàn)過(guò)濾功能,每次查詢均視作全部結(jié)果
returnData.data = result.data; // 返回的數(shù)據(jù)列表
//console.log(returnData);
// 調(diào)用DataTables提供的callback方法,代表數(shù)據(jù)已封裝完成并傳回DataTables進(jìn)行渲染
// 此時(shí)的數(shù)據(jù)需確保正確無(wú)誤,異常判斷應(yīng)在執(zhí)行此回調(diào)前自行處理完畢
callback(returnData);
cut_td($("#table-main"), 40); // 表格截?cái)?
}, 200);
}
});
},
//列表表頭字段
columns: [
{ "data": "user_name" },
{ "data": "channel" },
{ "data": "game" },
{ "data": "status",
"render": function(data){
var status_name = '';
switch(data)
{
case 0: status_name = '未完成'; break;
case 1: status_name = '腳本錯(cuò)誤'; break;
case 2: status_name = '成功'; break;
case 3: status_name = '測(cè)試通過(guò)'; break;
default : status_name = '未知'; break;
}
return status_name;
}},
{ "data": "cast_time",
"render" : function(data){
if (data)
{
return data + 's';
}
else
{
return '廢棄';
}
}},
{ "data": "format_created_at" },
]
}).api();
后臺(tái)數(shù)據(jù)返回格式
{
"total": 234,
"per_page": "25",
"current_page": 1,
"last_page": 10,
"next_page_url": "http://local.dgc_sdkops.com/monitor/log_pack/getRecodeList?page=2",
"prev_page_url": null,
"from": 1,
"to": 25,
"data": [
{
"id": 128,
"user_id": 1,
"task_id": "package_128_113",
"channel_version_id": 128,
"game_version_id": 113,
"extend_id": 0,
"type": "pack",
"status": 2,
"remark": "",
"cast_time": 93475,
"created_at": "1500365068",
"updated_at": "1500458543",
"user_name": "admin",
"format_created_at": "2017-07-18 16:04:28",
"format_updated_at": "2017-07-18 16:04:28",
"game": "x",
"channel": "y",
"game_id": 11290,
"channel_id": 67
},
{
"id": 240,
"user_id": 1,
"task_id": "package_128_113",
"channel_version_id": 128,
"game_version_id": 113,
"extend_id": 0,
"type": "pack",
"status": 0,
"remark": "",
"cast_time": 0,
"created_at": "1500458454",
"updated_at": "1500458454",
"user_name": "admin",
"format_created_at": "2017-07-19 18:00:54",
"format_updated_at": "2017-07-19 18:00:54",
"game": "x",
"channel": "y",
"game_id": 11290,
"channel_id": 67
}
]
}
相關(guān)文章
jquery捕捉回車鍵及獲取checkbox值與異步請(qǐng)求的方法
這篇文章主要介紹了jquery捕捉回車鍵及獲取checkbox值與異步請(qǐng)求的方法,實(shí)例分析了jQuery針對(duì)回車鍵的捕捉,checkbox值的獲取以及異步請(qǐng)求的響應(yīng)等相關(guān)技巧,需要的朋友可以參考下2015-12-12
jQuery 1.9使用$.support替代$.browser的使用方法
jQuery 從 1.9 版開(kāi)始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support,下面我們來(lái)看下具體的使用方法2014-05-05
jquery引入外部CDN 加載失敗則引入本地jq庫(kù)
這篇文章主要介紹了網(wǎng)站加載第三方CDN,如果jQuery庫(kù)不成功則加載本地的jquery的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-05-05
jQuery實(shí)現(xiàn)導(dǎo)航欄頭部菜單項(xiàng)點(diǎn)擊后變換顏色的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)導(dǎo)航欄頭部菜單項(xiàng)點(diǎn)擊后變換顏色的方法,涉及jQuery響應(yīng)鼠標(biāo)事件針對(duì)頁(yè)面元素的遍歷及屬性變換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
IE8下Jquery獲取select選中的值post到后臺(tái)報(bào)錯(cuò)問(wèn)題
IE8下出現(xiàn)的問(wèn)題是直接將selectedValue post發(fā)送到后臺(tái),后臺(tái)接收時(shí)會(huì)報(bào)錯(cuò),這是因?yàn)镮E8下selectedValue當(dāng)成了數(shù)組,后臺(tái)無(wú)法識(shí)別2014-07-07
chosen實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì) 介紹了chosen實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
jQuery圓形統(tǒng)計(jì)圖開(kāi)發(fā)實(shí)例
這篇文章主要介紹了jQuery圓形統(tǒng)計(jì)圖開(kāi)發(fā)的方法,實(shí)例分析了circliful插件的用法與使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01
jquery 實(shí)現(xiàn)兩Select 標(biāo)簽項(xiàng)互調(diào)示例代碼
這篇文章主要與大家分享了jquery實(shí)現(xiàn)兩Select標(biāo)簽項(xiàng)互調(diào)的具體實(shí)現(xiàn),比較簡(jiǎn)單,比較實(shí)用2014-09-09

