// JScript 文件
/*
分页控件(DEVIN 2011年02月16日)
模版说明:
标准中文:<span>共:{RecordCount}条 {PageSize}条/页 {CurrentPage}页/{PageCount}页</span> {List}
标准英文:<span>Page {CurrentPage} of {PageCount} ({RecordCount} items) PageSize:{PageSize}</span> {List}
使用说明:Global 参数 cn|en 中文|英文
标记说明:
{RecordCount}:总记录数,对应参数:RecordCount
{PageSize} :分页数, 对应参数:PageSize
{CurrentPage}:当前页, 对应参数:CurrentPage
{PageCount} :总页数,无须输入,自动计算
{List} :分页模版,分页详细显示链接
参数说明:
RecordCount :总记录数
CurrentPage :当前页
PageSize :分页数
ControlId :代码容器ID
Attach :附加参数(以 , 开头,多个以 , 分隔,字符串用''隔开)例:",2","2,'中国'"
Template :可按模版说明编辑模版,为空或无则使用标准模版
Global :语言,cn|en 中文|英文
Callback :脚本方法
*/
String.prototype.format = function() {
var args = arguments;
return this.replace(/\{(\d+)\}/g, function(m, i) {
return args[i];
});
};
function Pagination(ag) {
var $ = this;
for (var o in ag)
$[o] = ag[o];
var en = $.Global && $.Global == 'en';
$.Template = $.Template ? $.Template : !en ? '<span>共:{RecordCount}条 {PageSize}条/页 {CurrentPage}页/{PageCount}页</span> {List}' : '<span>Page {CurrentPage} of {PageCount} ({RecordCount} items) PageSize:{PageSize}</span> {List}';
$.CurrentPage = parseInt($.CurrentPage);
$.TotalPags = Math.ceil($.RecordCount / $.PageSize);
$.RecordCount = parseInt($.RecordCount);
if ($.TotalPags <= 10 || $.CurrentPage <= 9) {
$.index = 1;
$.endPage = 10 > $.TotalPags ? $.TotalPags : 10;
}
else {
if ($.TotalPags - $.CurrentPage <= 1) {
$.index = $.TotalPags - 8;
$.endPage = $.TotalPags;
} else {
$.index = $.CurrentPage - 8;
$.endPage = $.CurrentPage + 1;
}
}
var s = [];
if ($.CurrentPage > 1) {
s.push('<a href="javascript:{0}(1{4});" title="{2}"><<</a> <a href="javascript:{0}({1}{4});" title="{3}"><</a> '.format($.Callback, ($.CurrentPage - 1), (en ? 'first' : '首页'), (en ? 'previous' : '上一页'), $.Attach));
}
for (var i = $.index; i <= $.endPage; i++) {
s.push($.CurrentPage == i ? '<a class="current">{0}</a> '.format(i) : '<a href="javascript:{1}({0}{3});" title="{2}">{0}</a> '.format(i, $.Callback, (en ? 'page:{0}'.format(i) : '第{0}页'.format(i)), $.Attach));
}
if ($.TotalPags > $.CurrentPage) {
s.push('<a href="javascript:{0}({1}{5});" title="{3}">></a> <a href="javascript:{0}({2}{5});" title="{4}">>></a> '.format($.Callback, ($.CurrentPage + 1), $.TotalPags, (en ? 'next' : '下一页'), (en ? 'end' : '末页'), $.Attach))
}
var html = $.Template;
html = html.replace("{RecordCount}", $.RecordCount).replace("{PageSize}", $.PageSize).replace("{PageCount}", $.TotalPags).replace("{CurrentPage}", $.CurrentPage).replace('{List}', s.join(''));
var o = document.getElementById($.ControlId);
if (!o) return;
o.innerHTML = html;
}
调用的方法
function showPage(p) { //执行 AJAX 数据调用方法 //并显示返回数据 // p为当前页 //调用分页方法 new Pagination({ RecordCount : countNum, CurrentPage : p, PageSize : 10, ControlId : "hotel-commente-page",//容器ID Attach : "", Template : "", Global : "cn", Callback : "AjaxHKmoHotel"//点击触发的函数 }); }