JQPAGINATION分页插件参考资料:http://blog.csdn.net/chinet_bridge/article/details/12488719
献上实用代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href="./css/jqpagination.css" /> <script src="./js/jquery-1.7.2.min.js"></script> <script src="./js/jquery.jqpagination.js"></script> <script id="myTemp" type="text/html"> <li>名称:{Name},用户名:{LoginID}</li> </script> </head> <body> <ul id="myRecord"> </ul> <div class="gigantic pagination"> <a href="#" class="first" data-action="first">«</a> <a href="#" class="previous" data-action="previous">‹</a> <input type="text" readonly="readonly" /> <a href="#" class="next" data-action="next">›</a> <a href="#" class="last" data-action="last">»</a> </div> <div class="clearfix"> </div> </body> </html> <script type="text/javascript" language="javascript"> var MPAGE = 0; var SIZE = 2; function rpt(p) { $.ajaxSettings.async = false; $.getJSON('./lib/company.json').done(function (data) { if (p == 1) { MPAGE =Math.ceil(data.total/SIZE); } $('#myRecord').html(''); var start = (p - 1) * SIZE; var end = Math.min(p * SIZE, data.total); for (var i = start, j = end; i < j; i++) { var item = data.rows[i]; var tmp = $('#myTemp').html(); tmp = tmp.replace(/\{(\w+)\}/g, function (source, key) { return item[key]; }); $('#myRecord').append(tmp); } }); $.ajaxSettings.async = true; } rpt(1); $('.pagination').jqPagination({ link_string: '/?page={page_number}', max_page: MPAGE, paged: function (page) { rpt(page); } }); </script>如果是用ajax,读取总记录数和数据内容最好分开两个ajax. 像上面那样只用一个ajax,就要将异步改成同步,因为总记录数要在分页功能初始化之前生成数据。要是显示数据内容单独做成一个ajax,这个ajax则可以保持异步。说到这里还是感觉繁琐。笔者想到另外一套思路。可以先将数据转js数组。看代码:
<!DOCTYPE html> <head> <link rel="stylesheet" href="./css/jqpagination.css" /> <script src="./js/jquery-1.7.2.min.js"></script> <script src="./js/jquery.jqpagination.js"></script> <script id="myTemp" type="text/html"> <li>名称:{Name},用户名:{LoginID}</li> </script> </head> <body> <ul id="myRecord"> </ul> <div class="gigantic pagination"> <a href="#" class="first" data-action="first">«</a> <a href="#" class="previous" data-action="previous">‹</a> <input type="text" readonly="readonly" /> <a href="#" class="next" data-action="next">›</a> <a href="#" class="last" data-action="last">»</a> </div> <div class="clearfix"> </div> </body> </html> <script type="text/javascript" language="javascript"> var ROWS = [{ "Name": "上海陆地信息公司", "LoginID": "yu" }, { "Name": "上海陆空电子信息公司", "LoginID": "tianya" }, { "Name": "上海中草药有限公司", "LoginID": "yutian" }, { "Name": "上海眉飞色舞娱乐有限公司", "LoginID": "tianya21" }, { "Name": "天天饮食股份有限公司", "LoginID": "tiantian" }, { "Name": "上海陆空电脑培训中心", "LoginID": "tiantianjian" }, { "Name": "碧海蓝天餐饮娱乐有限公司", "LoginID": "bihai" }, { "Name": "天天发笔记本公司", "LoginID": "tiantianfa" }, { "Name": "集运通信科技有限公司", "LoginID": "jiyun" }, { "Name": "东方红太阳能有限公司", "LoginID": "dongfanghong" }, { "Name": "上海有线传媒有限公司", "LoginID": "youxian" }, { "Name": "HP笔记本生产公司", "LoginID": "hp" }, { "Name": "上海空中楼阁设计有限公司", "LoginID": "kongzhong" }, { "Name": "上海海鸥科技博览馆", "LoginID": "haiou" }, { "Name": "上海千珂企业形像策划制作有限公司", "LoginID": "qianke" }, { "Name": "上海可喜可乐有限公司", "LoginID": "kexkl" }, { "Name": "天使婴儿用品有限公司", "LoginID": "tianshi" }, { "Name": "安妮2测试有限公司", "LoginID": "annee" }, { "Name": "中石信息技术有限公司", "LoginID": "airong"}]; var SIZE = 2; var MPAGE = Math.ceil(ROWS.length/SIZE); function rpt(p) { $('#myRecord').html(''); var start = (p - 1) * SIZE; var end = Math.min(p * SIZE, ROWS.length); for (var i = start, j = end; i < j; i++) { var item = ROWS[i]; var tmp = $('#myTemp').html(); tmp = tmp.replace(/\{(\w+)\}/g, function (source, key) { return item[key]; }); $('#myRecord').append(tmp); } } rpt(1); $('.pagination').jqPagination({ link_string: '/?page={page_number}', max_page: MPAGE, paged: function (page) { rpt(page); } }); </script>
如果需要支持url分页,代码示例:
<!DOCTYPE html> <head> <link rel="stylesheet" href="./css/jqpagination.css" /> <script src="./js/jquery-1.7.2.min.js"></script> <script src="./js/jquery.jqpagination.js"></script> <script id="myTemp" type="text/html"> <li>名称:{Name},用户名:{LoginID}</li> </script> </head> <body> <ul id="myRecord"> </ul> <div class="gigantic pagination"> <a href="#" class="first" data-action="first">«</a> <a href="#" class="previous" data-action="previous">‹</a> <input type="text" readonly="readonly" /> <a href="#" class="next" data-action="next">›</a> <a href="#" class="last" data-action="last">»</a> </div> <div class="clearfix"> </div> </body> </html> <script type="text/javascript" language="javascript" > var ROWS = [{ "Name": "上海陆地信息公司", "LoginID": "yu" }, { "Name": "上海陆空电子信息公司", "LoginID": "tianya" }, { "Name": "上海中草药有限公司", "LoginID": "yutian" }, { "Name": "上海眉飞色舞娱乐有限公司", "LoginID": "tianya21" }, { "Name": "天天饮食股份有限公司", "LoginID": "tiantian" }, { "Name": "上海陆空电脑培训中心", "LoginID": "tiantianjian" }, { "Name": "碧海蓝天餐饮娱乐有限公司", "LoginID": "bihai" }, { "Name": "天天发笔记本公司", "LoginID": "tiantianfa" }, { "Name": "集运通信科技有限公司", "LoginID": "jiyun" }, { "Name": "东方红太阳能有限公司", "LoginID": "dongfanghong" }, { "Name": "上海有线传媒有限公司", "LoginID": "youxian" }, { "Name": "HP笔记本生产公司", "LoginID": "hp" }, { "Name": "上海空中楼阁设计有限公司", "LoginID": "kongzhong" }, { "Name": "上海海鸥科技博览馆", "LoginID": "haiou" }, { "Name": "上海千珂企业形像策划制作有限公司", "LoginID": "qianke" }, { "Name": "上海可喜可乐有限公司", "LoginID": "kexkl" }, { "Name": "天使婴儿用品有限公司", "LoginID": "tianshi" }, { "Name": "安妮2测试有限公司", "LoginID": "annee" }, { "Name": "中石信息技术有限公司", "LoginID": "airong"}]; var SIZE = 2; var MPAGE = Math.ceil(ROWS.length / SIZE); var rpt = function (c) { var href = window.location.href, s = window.location.search, reg = /(&?)page=(\d+)/; if (c!=0) { var char = s == '' ? '?' : '&'; if (reg.test(href)) { href = href.replace(reg, char + 'page=' + c); } else { href += char + 'page=' + c; } window.location.href = href.replace('?&', '?'); } else { var _page = s.match(reg); c = _page ? _page[2] : 1; $('.pagination').jqPagination({ current_page: c, link_string: '', max_page: MPAGE, paged: function (page) { rpt(page); } }); //前端显示数据内容代码开始,此处可用服务端代码代替显示 $('#myRecord').html(''); var start = (c - 1) * SIZE; var end = Math.min(c * SIZE, ROWS.length); for (var i = start, j = end; i < j; i++) { var item = ROWS[i]; var tmp = $('#myTemp').html(); tmp = tmp.replace(/\{(\w+)\}/g, function (source, key) { return item[key]; }); $('#myRecord').append(tmp); } //前端显示数据内容代码开始,此处可用服务端代码代替显示 } } rpt(0); </script>