EasyUI?Pagination如何實現(xiàn)分頁功能getPager
EasyUI Pagination實現(xiàn)分頁功能getPager
查看了一邊EasyUI 官網(wǎng)對于分頁功能的編寫,剛開始使用easyui時發(fā)現(xiàn)其中有很多自己不理解的地方,還好幫我們做了很多函數(shù)的封裝,供我們直接調(diào)用就可以了,更好的使用在網(wǎng)頁中,對于新手更是很好理解。
便于操作和更改,下面我們對于分頁做一次詳細的解剖,在工作中遇到各種坑,發(fā)現(xiàn)一套完整的功能講解,并獻上代碼,以供各位指正。
1.第一步通過標記創(chuàng)建分頁(pagination)data-options里面的內(nèi)容可參考官網(wǎng)的API根據(jù)需要添加。
<table id="recordDatagrid" class="easyui-datagrid" style="width: 100%; height: 500px" ? ? data-options=" ? ? fitColumns:true, ? ? autoRowHeight:false, ? ? pagination:true, ? ? singleSelect:true, ? ? nowrap:false, ? ? showRefresh:false, ? ? striped:true, ? ? rownumbers:true"> ? ? <thead> ? ? ? ? <tr> ? ? ? ? <th data-options="field:'number'" ?sortable="true" style="width: 14%">AI智能</th> ? ? ? ? </tr> ? ? </thead> </table>
2.第二步使用 javascript 創(chuàng)建分頁(pagination)。
$(function($) {getPager_DataGrid('recordDatagrid');//獲取table分頁的id initDataTables(1,10,"y");});//頁面進入就執(zhí)行//回調(diào)函數(shù)
3.第三步使用 處理ajax請求回來的數(shù)據(jù)操作如下。
function initDataTables(pageNumber, pageSize,isNew) {$.ajax({ ? ? type: "get", ? ? dataType: "json", ? ? data:"&pageNumber="+ pageNumber ? ? +"&pageSize="+ pageSize,//傳頁數(shù) ? ? url: '/storeManageController/list',//填寫地址 beforeSend:function(){//數(shù)據(jù)傳輸中顯示框 ? ? $.messager.progress({ ? ? ? ? title:'請稍等', ? ? ? ? interval:50, ? ? ? ? text:'數(shù)據(jù)加載中...' ? ? }); }, success: function(json){ ? ? //console.log("json"+JSON.stringify(json)); ? ? $('#recordDatagrid').datagrid('loadData', json);?? ??? ??? ?? ? ? if(isNew == "y"){//獲取第一頁,頁面刷新時顯示第一頁內(nèi)容 ? ? ? ? var p = $('#recordDatagrid').datagrid('getPager');?? ? ? ? ? ? $(p).pagination({ ? ? ? ? ? ? pageNumber:1 ? ? }); } ? ? $.messager.progress('close');//顯示框關閉 ? ? }, error: function(XMLHttpRequest, textStatus, errorThrown){ ? ? ?$.messager.progress('close'); } });});
4.第四步使用,這里從ajax傳回的數(shù)據(jù)處理完之后,頁面顯示的分頁此時是英文顯示,我們還需要做一步處理,easyui已經(jīng)幫我們做好了封裝的函數(shù),這一步直接粘貼復制就可以了,對應好table的id的名字。
function getPager_DataGrid(datagridID){//這里我們要對照第二步的函數(shù)名一致 ? ? var p = $('#'+datagridID+'').datagrid('getPager'); ? ? $(p).pagination({ ? ? ? ? pageSize:10, ? ? ? ? pageList:[10,30,50], ? ? ? ? beforePageText:'第', ? ? ? ? afterPageText:'頁 ?? ?共{pages}頁', ? ? ? ? displayMsg:'當前顯示{from} - {to}條記錄?? ?共{total}條記錄', ? ? ? ? onSelectPage:function(pageNumber, pageSize){ ? ? ? ? ? ? initDataTables(pageNumber, pageSize, "n");//我們回調(diào)函數(shù),通過ajax請求,返回參數(shù) ? ? ? ? } ? ? }); }
這就是全部的代碼,希望你們能夠看懂
easyui控件,如何使用分頁功能
//定義兩個全局變量,用于存放最新的pageSize和pageNumber,在datagrid加載完畢函數(shù)中,捕捉列表頁各種動作并記錄當前頁和頁面條數(shù)
//根據(jù)新的頁碼和頁面條數(shù),刷新數(shù)據(jù)
var dgPageNumber=1;//初始頁碼 var dgPageSize=10;//初始頁記錄數(shù) $("#dg").datagrid({ pagination:true, pageNumber:dgPageNumber, pageSize:dgPageSize, onLoadSuccess:function(data){ $("#dg").datagrid('getPager').pagination({ onRefresh:function(pageNumber,pageSize){ dgPageNumber=pageNumber; dgPageSize=pageSize; $("#dg").datagrid({ pageNumber:pageNumber, pageSize:pageSize }); //頁碼刷新后,數(shù)據(jù)要刷新,重新根據(jù)新頁碼查詢數(shù)據(jù) //loadData() }, onChangePageSize:function(pageSize){ dgPageSize=pageSize; $("#dg").datagrid({ pageNumber:dgPageNumber, pageSize:pageSize }); //頁面承載條數(shù)改變,數(shù)據(jù)也要刷新 //loadData() }, onSelectPage:function(pageNumber,pageSize){ dgPageNumber=pageNumber; dgPageSize=pageSize; $("#dg").datagrid({ pageNumber:pageNumber, pageSize:pageSize }); //頁碼改變,數(shù)據(jù)也要刷新 //loadData() } }) } })
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
jquery ajaxSubmit 異步提交的簡單實現(xiàn)
這篇文章主要介紹了jquery ajaxSubmit 異步提交的簡單實現(xiàn)。需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02jQuery解決IE6、7、8不能使用 JSON.stringify 函數(shù)的問題
本文主要介紹jQuery解決IE6、7、8不能使用 JSON.stringify 函數(shù)的問題,通過第三方的json2.js做到兼容,需要的朋友可以參考下。2016-05-05jquery無法為動態(tài)生成的元素添加點擊事件的解決方法(推薦)
下面小編就為大家?guī)硪黄猨query無法為動態(tài)生成的元素添加點擊事件的解決方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-12-12節(jié)點的插入之a(chǎn)ppend()和appendTo()的用法介紹
說到節(jié)點的插入想必大家對append()和appendTo()的用法并不陌生吧,下面有個不錯的是,希望對大家學習有所幫助2014-01-01