EasyUI Datagrid 分頁,兩種狀況ajax
第一種,向後臺請求數據,點擊分頁請求一次,點擊排序請求一次。使用表格自帶的ajax。json
box.datagrid({ url: '’, //後臺請求地址 queryParams: {'name':'','age':''},//向後臺傳參 width: '100%', height: '500px', fitColumns: true, singleSelect:true, remoteSort:true, pageList : [ 5, 10, 20, 30, 40, 50, 100 ],// 能夠設置每頁記錄條數的列表 pageSize : 50,// 每頁顯示的記錄條數,默認爲10 loadMsg : '正在加載數據,請稍後...', pagination : true, // 分頁工具欄 columns:[[ {field:'name',title:'姓名',width:'50%',align:'left',sortable:true}, {field:'age',title:'年齡',width:'50%',align:'left',sortable:true} ]], onLoadSuccess: function(data){ } }); pageUtil(box);
function pageUtil(box) { box.datagrid('getPager').pagination({ loadMsg: '正在加載數據,請稍後...', beforePageText: '第', // 頁數文本框前顯示的漢字 afterPageText: '頁 共 {pages} 頁', displayMsg: '當前顯示 {from} - {to} 條記錄 共 {total} 條記錄' }); }
第二種 只向後臺請求一次,點擊分頁再也不發送請求,但依然可以分頁、排序。不使用表格自帶的ajax,須要單獨寫ajax數組
box.datagrid({
widht: '100%', height: '500px', fitColumns: true, singleSelect:true, rownumbers : false, remoteSort:false, sortName:"name", sortOrder:"desc", pageList : [ 5, 10, 20, 30, 40, 50, 100 ],// 能夠設置每頁記錄條數的列表 pageSize : 50,// 每頁顯示的記錄條數,默認爲10 loadMsg : '正在加載數據,請稍後...', pagination : true, // 分頁工具欄
columns:[[
{field:'name',title:'姓名',width:'50%',align:'left',sortable:true}, {field:'age',title:'年齡',width:'50%',align:'left',sortable:true} ]],
onLoadSuccess: function(data){ },
onSortColumn:function(sort,order){ datagridUtils.onSortColumn(box,sort); }
});
box.datagrid({loadFilter:pagerFilter}).datagrid('loadData', getData());
pageUtil(box);
function pagerFilter(data){ if (typeof data.length == 'number' && typeof data.splice == 'function'){ // 判斷數據是不是數組 data = { total: data.length, rows: data } } var dg = $(this); var opts = dg.datagrid('options'); var pager = dg.datagrid('getPager'); pager.pagination({ onSelectPage:function(pageNum, pageSize){ opts.pageNumber = pageNum; opts.pageSize = pageSize; pager.pagination('refresh',{ pageNumber:pageNum, pageSize:pageSize }); dg.datagrid('loadData',data); } }); if (!data.originalRows){ data.originalRows = (data.rows); } var start = (opts.pageNumber-1)*parseInt(opts.pageSize); var end = start + parseInt(opts.pageSize); data.rows = (data.originalRows.slice(start, end)); return data; }
function getData(){
var jsonurl = "";
var data =""; $.ajax({ url:jsonurl, async:false, type:"post", data:{'name':'','page':1,'rows':100},//data是傳給後臺的參數,若是不須要參數也能夠不寫 success: function(json){//回調函數 data = json; } }); return data; }