`

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分页

    JavaScript分页是网页开发中一个常见且重要的功能,它用于处理大量数据的显示,通过将数据分割成小块,逐页加载,提高了用户体验并优化了页面性能。在本项目中,我们将探讨如何使用纯JavaScript实现分页功能,以及...

    javascript 分页

    在实际应用中,JavaScript分页可以结合前端框架和库来简化实现,例如使用jQuery的`paginate`插件,React的`react-paginate`,Vue的`vue-paginate`等。这些库通常提供了丰富的配置项和预定义的样式,使分页功能更易于...

    javascript 分页模块

    7. **类库与插件**:在实际开发中,我们往往使用现有的JavaScript分页库,如`bootstrap-paginator.js`、`pager.js`或本案例中的`Cls_jsPage.js`,这些库封装了上述逻辑,提供更易用的API。 8. **示例代码**:`demo....

    js分页javascript分页

    JavaScript分页是网页开发中常用的一种技术,用于处理大量数据时,将数据分割成多个页面进行展示,提高用户体验。在不加载所有数据的情况下,只加载用户当前查看的部分,这样可以减少页面加载时间,提高页面性能。...

    javascript分页实现

    首先,理解JavaScript分页的基本原理。在网页上,分页通常涉及到两个主要部分:前端UI的展示和后端数据的获取。前端UI包括页码显示、每页条数选择等元素,而后端数据获取则是通过AJAX请求,根据当前页码和每页条数向...

    Javascript分页效果(收集了很多强大的JS分页代码)

    这个压缩包中包含了多个JavaScript分页代码示例,适合网页开发者参考和直接应用。 分页效果的实现通常包括以下几个核心部分: 1. 数据获取:首先,需要获取要分页展示的数据。这些数据可以来源于服务器端(如通过...

    一个通用的JavaScript分页

    JavaScript分页是网页开发中常见的功能,用于处理大量数据时分块显示,提高用户体验。以下是对这个通用JavaScript分页实现的详细解析: 1. **变量定义**: - `totalNum`:总记录数,表示数据源中的条目总数。 - `...

    javaScript Array数组分页处理

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

    10种JavaScript分页代码.rar

    JavaScript分页是网页开发中的一个重要技术,特别是在处理大数据集或长列表时,为了提高用户体验,通常会采用分页展示数据。这个"10种JavaScript分页代码.rar"压缩包文件包含了一系列实现JavaScript分页功能的源代码...

    javascript分页控件20090313

    下面我们将深入探讨JavaScript分页控件的相关知识点。 一、JavaScript分页的基本原理 1. 数据分块:JavaScript分页控件的核心思想是将大量数据分成若干小块(页)进行加载。每次只加载用户当前浏览的一页数据,...

    10种JavaScript分页代码

    JavaScript分页是网页开发中的一个重要技术,特别是在处理大数据集或长列表时,为了提高用户体验,通常会采用分页展示数据。这些分页代码示例提供了多种实现方式,可以帮助开发者理解和应用JavaScript分页功能。 ...

    基于javascript真分页

    - **数据处理**:Servlet可以根据请求参数(如当前页号、每页数量)查询数据库,执行分页查询,然后将结果封装成JSON或XML格式,便于JavaScript解析。 - **接口设计**:设计一个清晰、高效的API接口,使得...

    javascript分页控件20090312

    JavaScript分页控件是网页开发中常用的一种组件,主要用于处理大量数据时的页面显示,以提高用户体验和网页加载效率。2009年3月12日发布的这个资源可能是一个JavaScript实现的分页插件或者代码库,它可以帮助开发者...

    javascript分页

    JavaScript分页是网页开发中的一个重要技术,用于处理大量数据或内容的显示,使得用户可以方便地浏览和导航。在网页中,当数据无法一次性完全加载时,分页就显得尤为重要,它可以提高页面加载速度,优化用户体验。...

    10种JavaScript分页效果

    本资源包含10种JavaScript分页效果的实现,旨在帮助开发者更好地理解和应用这一技术。 1. **基础分页**: 基础的分页通常包括数字链接,用户可以点击来跳转到不同的页面。这种分页方式简单直观,易于实现,但可能...

    经典JavaScript分页代码

    这个经典JavaScript分页代码实现了一个名为`Page`的类,用于处理分页逻辑。下面将详细解析这个代码中的关键知识点。 1. **类定义与构造函数**: 类`Page`通过构造函数接收三个参数:`iAbsolute`(每页显示记录数)...

    一个非常精巧的javascript实现的Bootstrap分页插件

    这个“一个非常精巧的javascript实现的Bootstrap分页插件”提供了无需依赖其他第三方类库的解决方案,使得开发者能够更轻松地在项目中集成分页功能。 首先,我们要理解什么是Bootstrap。Bootstrap是由Twitter推出的...

    laypage多功能JavaScript分页组件 v1.3-源码.zip

    《laypage多功能JavaScript分页组件 v1.3-源码》是专为前端开发者设计的一款高效、易用的分页插件。它以其强大的功能、灵活的配置选项和简洁的API,深受广大开发者喜爱。在深入理解并使用这款组件之前,我们需要先...

    一个原生的javascript分页插件

    通过学习和理解这个原生JavaScript分页插件,开发者不仅可以掌握分页的基本原理,还能提高对JavaScript、DOM操作和事件处理的理解,这对于提升前端开发技能大有裨益。此外,这个插件作为一个基础模板,可以作为...

Global site tag (gtag.js) - Google Analytics