JavaScript分页处理

//分页对象,按下面方式调用
//new PageManage().process(current_page, total_record_num, every_page_nums,func_name, page_display_num);
//current_page为当前页号,total_record_num总记录数,every_page_nums每页数据记录数,func_name页面的提交表单函数名,//page_display_num页面显示的页码数

var PageManage = function() {
};

PageManage.prototype = {
process : function(current_page, total_record_num, every_page_nums,
func_name, page_display_num) {

this.current_page = current_page;
this.total_record_num = total_record_num;
this.every_page_nums = every_page_nums;
this.func_name = func_name;
this.page_display_num = page_display_num || 10;

this.calc_page_var();
var pos = this.get_be_page();

if (this.page_num <= 1) {return;}
var tags = this.prepare(pos);
this.output(tags);
},

calc_page_var : function() {
var current_page = this.current_page;
var page_num = this.page_num;
var total_record_num = this.total_record_num;
var every_page_nums = this.every_page_nums;
var page_display_num = this.page_display_num;

if (current_page <= 0) {
this.current_page = 1;
}

this.page_num = 1;

if (total_record_num > 0) {
this.page_num = Math.ceil(total_record_num / every_page_nums);
}
if (current_page > page_num) {
this.current_page = page_num;
}
if (page_num < page_display_num) {
this.page_display_num = page_num;
}
},

get_be_page : function() {
var current_page = this.current_page;
var page_num = this.page_num;
var page_display_num = this.page_display_num;

var bgnp = 0;
var endp = 0;
var half_endp = Math.floor(page_display_num / 2);

if (current_page <= half_endp + page_display_num % 2) {
bgnp = 1;
if (page_num < page_display_num) {
endp = page_num;
}
else {
endp = page_display_num;
}
} else if (current_page > page_num - half_endp - page_display_num % 2) {
endp = page_num;
bgnp = page_num - page_display_num + 1;
if (bgnp < 1) {
bgnp = 1;
}
} else {
bgnp = current_page - half_endp;
endp = current_page + half_endp - 1 + page_display_num % 2;
}
var pos = {"bgn" :bgnp, "end" :endp};
return pos;
},

prepare : function(pos) {

var bgnp = pos["bgn"];
var endp = pos["end"];

var func_name = this.func_name;
var current_page = this.current_page;
var page_num = this.page_num;
var total_record_num = this.total_record_num;

var tags = {
"first_page" :"",
"prev_page" :"",
"page_list" :"",
"next_page" :"",
"last_page" :"",

"total_page" :"",
"total_record" :"",
"curr_page" :"",
"jump_page" :""
};

if (current_page > 1) {
tags["first_page"] = "".concat("<a href='javascript:", func_name,
"(1)'>首页</a>|");
tags["prev_page"] = "".concat("<a href='javascript:", func_name,
"(", (current_page - 1), ")'>上一页</a>|");
} else {
tags["first_page"] = "".concat("<span style='color:gray'>首页</span>|");
tags["prev_page"] = "".concat("<span style='color:gray'>上一页</span>|");
}

for ( var i = bgnp; i <= endp; i+=1) {
if (i != current_page) {
tags["page_list"] += "".concat("<a href='javascript:",
func_name, "(", i, ")'>", i, "</a> ");
}
else {
tags["page_list"] += "".concat("<b>", i, "</b> ");
}
}
if (current_page < page_num) {
tags["next_page"] = "".concat("<a href='javascript:", func_name,
"(", (current_page + 1), ")'>下一页</a>|");
tags["last_page"] = "".concat("<a href='javascript:", func_name,
"(", page_num, ")'>尾页</a>|");
} else {
tags["next_page"] = "".concat("<span style='color:gray'>下一页</span>|");
tags["last_page"] = "".concat("<span style='color:gray'>尾页</span>");
}

tags["total_page"] = "".concat("共<span style='color:red;'>", page_num,
"</span>页");
tags["total_record"] = "".concat("<span style='color:red'>",
total_record_num, "</span>条记录");
tags["curr_page"] = "".concat("当前是第<span style='color:red;'>",
current_page, "</span>页 ");
tags["jump_page"] = "".concat("<form οnsubmit='", func_name,
"(this.page.value);return false;'>",
"跳到<input name='page' type='text' size='3' value='",
current_page, "'>页 ",
"<input type='submit' value='go' /></form>");
return tags;
},

output : function(tags) {
document.write(tags["first_page"]);
document.write(tags["prev_page"]);
document.write(" ");
document.write(tags["page_list"]);
document.write("|");
document.write(tags["next_page"]);
document.write(tags["last_page"]);
document.write(" ");
document.write(tags["total_page"]);
document.write(", ");
document.write(tags["total_record"]);
document.write(" ");
document.write(tags["curr_page"]);
document.write(tags["jump_page"]);
}
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值