`

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 onsubmit='", 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"]);
}
};
分享到:
评论

相关推荐

    纯手工编写JavaScript分页处理方法.js

    工作分享:纯手工编写JavaScript分页处理方法,亲测可用,可以直接拿来用,上代码

    javaScript Array数组分页处理

    javaScript:将Array数组分页处理,支持分页数据容错; js文件:Page4array分页处理工具类; 兼容版本ES6。 博文:https://blog.csdn.net/HTouying/article/details/88898258

    工作分享:JS分页处理

    工作中一些特殊场景,需要使用Javascript来进行分页的处理,自己纯手工写了一个分页处理。 分享给大家,可以作为参考学习,也可以拿来直接使用。谢谢你们!

    Java Oracle分页处理

    &lt;script language = "JavaScript"&gt; for(i=1;i${page.totalPages};i++) document.write("&lt;option value="+i+"&gt;"+i+"&lt;/option&gt;"); document.forms[0].pagetype.options[${page....

    javascript处理数据分页显示

    代码只有前台处理,后台涉及数据库操作部分省略

    分页导航通用类和js

    看了别人写的 分页条的显示 自己 结合个人项目也写了个,主要是针对 内存分页 涵盖 后台 数据处理,以及js显示,使用到了 jQuery ,分页条的样式 大家可以自行调整,感觉还凑合

    处理ajax和html的php分页类.zip

    一个处理ajax分页和html静态化页面分页的类,method 处理环境 设置为 html,问号的位置会自动替换为去向页码或method 处理环境 设置为 ajax,ajax分页跳转页面的javascript方法,ajax_func_name后面的附带参数 默认...

    bootstrap-table 分页Demo

    Bootstrap-table插件提供了非常丰富的属性设置,可以实现查询、分页、排序、复选框、设置显示列、Card view视图、主从表显示、合并列、国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行、...

    处理ajax和html的php分页类

    一个处理ajax分页和html静态化页面分页的类,method 处理环境 设置为 html,问号的位置会自动替换为去向页码或method 处理环境 设置为 ajax,ajax分页跳转页面的javascript方法,ajax_func_name后面的附带参数 默认...

    纯javascript实现分页(两种方法)

     因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用 这块代码写了两个稍微不同一些的分页!公共的...

    Sqlserver2005数据库级别异步分页

    数据库级别异步分页 javascript 通用分页存储过程 Sqlserver2005

    JavaScript实现前端分页控件

    通过js将查询参数构造好发向后台,后台处理后以特定的格式返回,多为json,比较流行处理起来也很方便。当后台数据到达后,浏览器重新渲染界面当然也包括js分页控件,如果觉得每次绘制分页控件对前端性能有影响也可以...

    datatables怎么分页

    几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation 各式各样的扩展: Editor, TableTools, FixedColumns …… 丰富多样的option和强大的API ...

    datatables+springmvc+bootstrap实现分页

    几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation 各式各样的扩展: Editor, TableTools, FixedColumns …… 丰富多样的option和强大的...

    Asp.Net无刷新分页( jquery.pagination.js)

    url: 'Handler/PagerHandler.ashx', //提交到一般处理程序请求数据 data: "pageIndex="+ (pageIndex +1) +"&pageSize="+ pageSize, //提交两个参数:pageIndex(页面索引),pageSize(显示条数) success: function...

    程序天下:JavaScript实例自学手册

    1.21 用JavaScript随机修改页面的标题 1.22 判断网页加载完毕 1.23 嵌入网页的播放器 1.24 设置指定网页为主页 1.25 使用JavaScript传递页面参数 1.26 页面被冻结 第 2章 按钮特效 2.1 页面刷新按钮 2.2 按回车调用...

    Javascript静态分页(多个资料,静态自动分页)

    看的处理是个不错的想法与应用大家可以看下。

    《程序天下:JavaScript实例自学手册》光盘源码

    1.21 用JavaScript随机修改页面的标题 1.22 判断网页加载完毕 1.23 嵌入网页的播放器 1.24 设置指定网页为主页 1.25 使用JavaScript传递页面参数 1.26 页面被冻结 第 2章 按钮特效 2.1 页面刷新按钮 2.2 按回车调用...

    使用Python的Requests、Selenium和BeautifulSoup结合的爬虫示例代码,用于爬取带有分页的动态网页

    在每个分页中,我们使用驱动的get()方法加载分页的URL,并使用time.sleep()方法等待页面加载完成,确保JavaScript渲染完成。 然后,我们将渲染后的网页内容传递给BeautifulSoup进行解析。在这个示例中,我们提取了...

    bootstrap-table分别实现前端和后端的分页项目

    在业务系统开发中,对表格记录的查询、分页、排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,...

Global site tag (gtag.js) - Google Analytics