应用在17种不同场景下的翻页,让你编写js分页只需提供记录总数,其他配值默认。下面介绍比较常用的三种场景。
先来看看ajax分页实例:
size变量是每页记录显示最大值;callback函数返回cfg是一个object,cfg.curr即当前页,通过它去请求相关数据。返回ini是个数字,等于1即第一次执行。
<!DOCTYPE html> <head> <script id="myTemp" type="text/html" > <li>名称:{Name},用户名:{LoginID}</li> </script> <script src="lib/asaid.0.2.2.js" type="text/javascript" data-main="app/init2" ></script> </head> <body> <ul id="ul2" ></ul> <span class="leaf" data-options="{ size: 2 , callback: function (cfg, ini) { $.ajaxSettings.async = false; $.getJSON('./lib/company.json').done(function (data) { if (ini == 1) { cfg.total = data.total; } $('#ul2').html(''); var start = (cfg.curr - 1) * cfg.size; var end = Math.min(cfg.curr * cfg.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]; }); $('#ul2').append(tmp); } }); $.ajaxSettings.async = true; } }" > </span> </body> </html>
<!DOCTYPE html> <head> <script id="myTemp" type="text/html" > <li>名称:{Name},用户名:{LoginID}</li> </script> <script src="lib/asaid.0.2.2.js" type="text/javascript" data-main="app/init,app/ajax" ></script> </head> <body> <ul id="content" ></ul> <span class="leaf" data-options="{ size: 2 , callback: pageCallback }" ></span> </body> </html>多出一个ajax.js ,位于同级目录下的app文件夹。将data-main="app/init2" 改成 data-main="app/init2,app/ajax"。
var pageCallback = function (cfg, ini) { $.ajaxSettings.async = false; $.getJSON('./lib/company.json').done(function (data) { if (ini == 1) { cfg.total = data.total; } $('#content').html(''); var start = (cfg.curr - 1) * cfg.size; var end = Math.min(cfg.curr * cfg.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]; }); $('#content').append(tmp); } }); $.ajaxSettings.async = true; }
define(function (require) { require("jquery.leaf.css"); require("jquery-1.10.2.min"); require("jquery.metadata"); require("jquery.leaf-5.0.2"); }); /* init2.js 就象下面代码的作用 <link href="lib/jquery.leaf.css" rel="stylesheet" type="text/css" /> <script src="lib/jquery-1.10.2.min.js" type="text/javascript"></script> <script src="lib/jquery.metadata.js" type="text/javascript"></script> <script src="lib/jquery.leaf-5.0.2.js" type="text/javascript"></script> */url分页实例:
<!DOCTYPE html> <head> <script src="lib/asaid.0.2.2.js" type="text/javascript" data-main="app/init2,app/urlPaging"></script> </head> <body> <span class="leaf" data-options="{ total: 1999, callback: pageCallback }"></span> </body> </html>
以下代码作用等同,是原始模式。
<!DOCTYPE html> <head> <script src="lib/jquery-1.10.2.min.js" type="text/javascript"></script> <script src="lib/jquery.metadata.js" type="text/javascript"></script> <link href="lib/jquery.leaf.css" rel="stylesheet" type="text/css" /> <script src="lib/jquery.leaf-5.0.2.js" type="text/javascript"></script> <script src="lib/app/urlPaging.js" type="text/javascript"></script> </head> <body> <span class="leaf" data-options="{ total: 1999, callback: pageCallback }"></span> </body> </html>
urlPaging.js 内容:
var pageCallback = function (c, t, size) { var href = window.location.href, s = window.location.search, reg = /(&?)page=(\d+)/; if (!t) { var char = s == '' ? '?' : '&'; if (reg.test(href)) { href = href.replace(reg, char + 'page=' + c.curr); } else { href += char + 'page=' + c.curr; } window.location.href = href.replace('?&', '?'); } else { var page = s.match(reg); c.curr = page ? page[2] : 1; } }DIY分页按钮实例:
声明方式设置:data-options="{total: 299, leafInfo:'{firstPrev}{moreNum}{nextLast}'}" ...
<!DOCTYPE html> <head> <script src="lib/asaid.0.2.2.js" type="text/javascript" data-main="app/init2" ></script> </head> <body> <span class="leaf" data-options="{total: 299,leafInfo: '{firstPrev}{moreNum}{nextLast}'}"> </span> </body> </html>
下载地址:
http://download.csdn.net/detail/chinet_bridge/8907085
服务端控件封装分页插件
http://download.csdn.net/detail/chinet_bridge/9120901