Javascript实现的分页函数
/**
* 分页类构造
* 参数 nTotalList: 总条数
* 参数 nPageSize: 每页显示条数
* 参数 nPageNum: 当前页码
* 参数 sPageUrl: 分页链接的URL,页码以[pn]代替,输出时将被替换为实际页码
* 参数 nPageListSize: 页码列表(下拉框)中显示的最多页码条数。该参数可省略,默认100
*/
function Pagination(nTotalList, nPageSize, nPageNum, sPageUrl, nPageListSize) {
this.totalList = nTotalList;
this.pageSize = nPageSize;
this.pageNum = nPageNum;
if (nTotalList == 0)
this.totalPages = 1;
else
this.totalPages = Math.floor((this.totalList-1)/this.pageSize + 1);
this.pageUrl = sPageUrl;
if (arguments[4])
this.pageListSize = nPageListSize;
else
this.pageListSize = 100;
}
/**
* 生成分页,将HTML直接输出
* 无参数
* 无返回值
*/
Pagination.prototype.generate = function() {
var output = "";
output += "<table width=\"98%\" cellspacing=\"1\" cellpadding=\"3\" align=\"center\"><tr><td align=\"right\">";
output += "共 " + this.totalList + " 条 每页 " + this.pageSize + " 条 当前第 ";
output += "<select onchange=\"if(this.value)location.href="" + this.pageUrl + "".replace(/\\[pn\\]/,";
output += "this.value);\" align=\"absMiddle\" style=\"font:normal 9px Verdana,Arial,宋体;\">";
var firstPage = this.pageNum - Math.floor(this.pageListSize/2);
if (firstPage < 1)
firstPage = 1;
var lastPage = firstPage + this.pageListSize - 1;
if (lastPage > this.totalPages) {
lastPage = this.totalPages;
firstPage = lastPage - this.pageListSize + 1;
if (firstPage < 1)
firstPage = 1;
}
if (firstPage > 1) {
output += "<option value=\"1\">1</option>";
if (firstPage > 2)
output += "<option value=\"\">…</option>";
}
for (var p = firstPage; p <= lastPage; p++) {
output += "<option value=\"" + p + "\"";
if (p == this.pageNum)
output += " selected=\"yes\"";
output += ">" + p + "</option>";
}
if (lastPage < this.totalPages) {
if (lastPage < this.totalPages - 1)
output += "<option value=\"\">…</option>";
output += "<option value=\"" + this.totalPages + "\">" + this.totalPages + "</option>";
}
if (this.pageNum > this.totalPages)
output += "<option value=\"\" selected=\"yes\">页码超出范围</option>";
output += "</select>";
output += "/" + this.totalPages + " 页 ";
if (this.pageNum == 1) {
output += "[首页] ";
output += "[上页] ";
}
else {
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, "1") + "\">[首页]</a> ";
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.pageNum-1) + "\">[上页]</a> ";
}
if (this.pageNum == this.totalPages) {
output += "[下页] ";
output += "[尾页]";
}
else {
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.pageNum+1) + "\">[下页]</a> ";
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.totalPages) + "\">[尾页]</a> ";
}
output += "</td></tr></table>";
document.writeln(output);
}
相关文章
- 【说站】javascript函数节流实现的两种方式
- 关于 2022 年 JavaScript 生态调查报告:TypeScript持续主导,Vite和Tauri大受欢迎
- JavaScript实现图片轮播详解编程语言
- java实现javascript中的escape和unescape函数详解编程语言
- 使用JavaScript的数组实现数据结构中的队列与堆栈详解编程语言
- JavaScript实现Sleep函数的代码
- 可实现多表单提交的javascript函数
- Javascript实现TreeViewCheckBox全选效果
- javascript实现的像java、c#之类的sleep暂停的函数代码
- JavaScript中yield实用简洁实现方式
- javascript下利用arguments实现string.format函数
- javascript整除实现代码
- javascript跨域刷新实现代码
- 编写可维护面向对象的JavaScript代码[翻译]
- 浅谈Javascript鼠标和滚轮事件
- javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
- JavaScript对任意元素,自定义右键菜单的实现方法
- javascript实现字符串反转的三种方法
- javascript模拟实现C#String.format函数功能代码
- JavaScript中实现PHP的打乱数组函数shuffle实例
- 使用JavaScript链式编程实现模拟Jquery函数
- javascript实现全角与半角字符的转换
- javascript实现动态加载CSS
- JavaScript中实现sprintf、printf函数
- JavaScript使用setInterval()函数实现简单轮询操作的方法
- JavaScript实现的GBK、UTF8字符串实际长度计算函数