Javascript實(shí)現(xiàn)的分頁(yè)函數(shù)
更新時(shí)間:2006年12月22日 00:00:00 作者:
From: IECN.Net ; Author: 鐘鐘
/**
* 分頁(yè)類構(gòu)造
* 參數(shù) nTotalList: 總條數(shù)
* 參數(shù) nPageSize: 每頁(yè)顯示條數(shù)
* 參數(shù) nPageNum: 當(dāng)前頁(yè)碼
* 參數(shù) sPageUrl: 分頁(yè)鏈接的URL,頁(yè)碼以[pn]代替,輸出時(shí)將被替換為實(shí)際頁(yè)碼
* 參數(shù) nPageListSize: 頁(yè)碼列表(下拉框)中顯示的最多頁(yè)碼條數(shù)。該參數(shù)可省略,默認(rèn)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;
}
/**
* 生成分頁(yè),將HTML直接輸出
* 無(wú)參數(shù)
* 無(wú)返回值
*/
Pagination.prototype.generate = function() {
var output = "";
output += "<table width=\"98%\" cellspacing=\"1\" cellpadding=\"3\" align=\"center\"><tr><td align=\"right\">";
output += "共 " + this.totalList + " 條 每頁(yè) " + this.pageSize + " 條 當(dāng)前第 ";
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\">頁(yè)碼超出范圍</option>";
output += "</select>";
output += "/" + this.totalPages + " 頁(yè) ";
if (this.pageNum == 1) {
output += "[首頁(yè)] ";
output += "[上頁(yè)] ";
}
else {
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, "1") + "\">[首頁(yè)]</a> ";
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.pageNum-1) + "\">[上頁(yè)]</a> ";
}
if (this.pageNum == this.totalPages) {
output += "[下頁(yè)] ";
output += "[尾頁(yè)]";
}
else {
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.pageNum+1) + "\">[下頁(yè)]</a> ";
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.totalPages) + "\">[尾頁(yè)]</a> ";
}
output += "</td></tr></table>";
document.writeln(output);
}
/**
* 分頁(yè)類構(gòu)造
* 參數(shù) nTotalList: 總條數(shù)
* 參數(shù) nPageSize: 每頁(yè)顯示條數(shù)
* 參數(shù) nPageNum: 當(dāng)前頁(yè)碼
* 參數(shù) sPageUrl: 分頁(yè)鏈接的URL,頁(yè)碼以[pn]代替,輸出時(shí)將被替換為實(shí)際頁(yè)碼
* 參數(shù) nPageListSize: 頁(yè)碼列表(下拉框)中顯示的最多頁(yè)碼條數(shù)。該參數(shù)可省略,默認(rèn)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;
}
/**
* 生成分頁(yè),將HTML直接輸出
* 無(wú)參數(shù)
* 無(wú)返回值
*/
Pagination.prototype.generate = function() {
var output = "";
output += "<table width=\"98%\" cellspacing=\"1\" cellpadding=\"3\" align=\"center\"><tr><td align=\"right\">";
output += "共 " + this.totalList + " 條 每頁(yè) " + this.pageSize + " 條 當(dāng)前第 ";
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\">頁(yè)碼超出范圍</option>";
output += "</select>";
output += "/" + this.totalPages + " 頁(yè) ";
if (this.pageNum == 1) {
output += "[首頁(yè)] ";
output += "[上頁(yè)] ";
}
else {
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, "1") + "\">[首頁(yè)]</a> ";
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.pageNum-1) + "\">[上頁(yè)]</a> ";
}
if (this.pageNum == this.totalPages) {
output += "[下頁(yè)] ";
output += "[尾頁(yè)]";
}
else {
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.pageNum+1) + "\">[下頁(yè)]</a> ";
output += "<a href=\"" + this.pageUrl.replace(/\[pn\]/, this.totalPages) + "\">[尾頁(yè)]</a> ";
}
output += "</td></tr></table>";
document.writeln(output);
}
您可能感興趣的文章:
- Javascript實(shí)現(xiàn)的分頁(yè)函數(shù)
- javascript+xml技術(shù)實(shí)現(xiàn)分頁(yè)瀏覽
- javascript 支持頁(yè)碼格式的分頁(yè)類
- javascript 新聞標(biāo)題靜態(tài)分頁(yè)代碼 (無(wú)刷新)
- Jquery與JS兩種方法仿twitter/新浪微博 高度自適應(yīng)無(wú)縫滾動(dòng)實(shí)現(xiàn)代碼
- javascript分頁(yè)代碼(當(dāng)前頁(yè)碼居中)
- Java(基于Struts2) 分頁(yè)實(shí)現(xiàn)代碼
- java調(diào)用oracle分頁(yè)存儲(chǔ)過(guò)程示例
- Java web velocity分頁(yè)宏示例
- javascript實(shí)現(xiàn)簡(jiǎn)單的分頁(yè)特效
- 純javascript實(shí)現(xiàn)分頁(yè)(兩種方法)
- JavaMe開(kāi)發(fā)繪制可自動(dòng)換行文本
- JavaMe開(kāi)發(fā)繪制文本框TextEdit
- JavaMe開(kāi)發(fā)自適應(yīng)滾動(dòng)顯示
相關(guān)文章
使用JavaScript練習(xí)動(dòng)畫最好的方式封面過(guò)渡
這篇文章主要為大家介紹了使用JavaScript練習(xí)動(dòng)畫最好的方式封面過(guò)渡實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07微信小程序中button組件的邊框設(shè)置的實(shí)例詳解
這篇文章主要介紹了微信小程序中button組件的邊框設(shè)置的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09Flutter?WebView性能優(yōu)化使h5像原生頁(yè)面一樣優(yōu)秀
這篇文章主要為大家介紹了Flutter?WebView性能優(yōu)化使h5像原生頁(yè)面一樣優(yōu)秀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02微信小程序 圖片寬度自適應(yīng)的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序 圖片寬度自適應(yīng)的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-04-04特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表
特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表...2006-06-06JS數(shù)據(jù)分析數(shù)據(jù)去重及參數(shù)序列化示例
這篇文章主要為大家介紹了JS數(shù)據(jù)分析數(shù)據(jù)去重及參數(shù)序列化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08