JS分頁控件 可用于無刷新分頁
更新時(shí)間:2013年07月23日 12:32:55 作者:
今天無意看到了這個(gè)分頁控件,不過使用方法不是很清楚沒有研究,。大家可以自行研究,里面的函數(shù)寫法倒是不錯(cuò),需要內(nèi)容的結(jié)合
JS分頁控件,可用于無刷新分頁
復(fù)制代碼 代碼如下:
function PagerBar(recordcount, pagesize, pageindex, showpagecount) {
var NumberRegex = new RegExp(/^\d+$/);
this.PageIndex = 1; //頁索引,當(dāng)前頁
if (pageindex != null && NumberRegex.test(pageindex)) this.PageIndex = parseInt(pageindex);
this.PageSize = 10; //頁面大小
if (pagesize != null && NumberRegex.test(pagesize)) this.PageSize = parseInt(pagesize);
this.RecordCount = 0;
if (recordcount != null && NumberRegex.test(recordcount)) this.RecordCount = parseInt(recordcount); //記錄總數(shù)
this.PageCount = 0; //頁總數(shù)
var PagerBar = this;
function CalculatePageCount(_pagesize, _recordcount) {//計(jì)算總頁數(shù)
if (_pagesize != null && NumberRegex.test(_pagesize)) PagerBar.PageSize = parseInt(_pagesize);
if (_recordcount != null && NumberRegex.test(_recordcount)) PagerBar.RecordCount = parseInt(_recordcount);
else PagerBar.RecordCount = 0;
if (PagerBar.RecordCount % PagerBar.PageSize == 0) {//計(jì)算總也頁數(shù)
PagerBar.PageCount = parseInt(PagerBar.RecordCount / PagerBar.PageSize);
}
else {
PagerBar.PageCount = parseInt(PagerBar.RecordCount / PagerBar.PageSize) + 1;
}
}
if (this.RecordCount != 0) {//如果傳入了記錄總數(shù)則計(jì)算總頁數(shù)
CalculatePageCount(this.PageSize, this.RecordCount);
}
this.ReplaceString = "《#PageLink》"; //替換頁數(shù)的文本,注:不可以有正則表達(dá)式中的符號
this.ShowPagesCount = 5; //顯示頁數(shù)量
if (showpagecount != null && NumberRegex.test(showpagecount.toString())) this.ShowPagesCount = parseInt(showpagecount);
this.PreviouBarFormat = ""; //上一頁顯示文本格式
this.IsShowPreviouString = true; //是否顯示上一頁
this.NextBarFormat = ""; //下一頁顯示文本格式
this.IsShowNextString = true; //是否顯示下一頁
this.PageBarFormat = ""; //頁面連接顯示文本格式
this.CurrentBarFormat = ""; //當(dāng)前頁顯示文本格式
this.IsShowPageString = true; //是否顯示頁索引
this.FristBarFormat = ""; //首頁鏈接顯示文本格式
this.IsShowFristString = true; //是否顯示首頁
this.LastBarFormat = ""; //尾頁顯示文本格式
this.IsShowLastString = true; //是否顯示尾頁
this.CurrentRecordBarFormat = "當(dāng)前記錄{0}-{1}"; //當(dāng)前記錄顯示文本格式
this.IsShowCurrentRecordString = true; //是否顯示當(dāng)前記錄
this.CurrentPageBarFormat = "當(dāng)前第" + this.ReplaceString + "頁,共" + (this.PageCount == 0 ? 1 : this.PageCount) + "頁"; //當(dāng)前頁文字說明文本格式
this.IsShowCurrentPageString = true; //是否顯示當(dāng)前頁文字說明文本
this.OtherBarFormat = ""; //其他也顯示文本
this.IsShowOtherString = true; //是否顯示其它頁文本
var regexp = new RegExp(this.ReplaceString, "g"); //替換頁數(shù)文本正則表達(dá)式
function GetFristPageString() {//獲取首頁文本
if (PagerBar.FristBarFormat != "" && PagerBar.PageIndex != 1) {
return PagerBar.FristBarFormat.replace(regexp, 1);
}
else {
return "";
}
}
function GetPreviouPageString() { //獲取上一頁文本
if (PagerBar.PreviouBarFormat != "") {
if (PagerBar.RecordCount > PagerBar.PageSize && PagerBar.PageIndex != 1) {//上一頁HTML輸出
return PagerBar.PreviouBarFormat.replace(regexp, PagerBar.PageIndex - 1);
}
else {
return "";
}
}
else {
return "";
}
}
function GetPageString() {//獲取中間頁數(shù)鏈接
var pagestr = "";
if (PagerBar.CurrentBarFormat != "" && PagerBar.PageBarFormat != "") {
var ShowPageFirest = PagerBar.PageIndex - parseInt(PagerBar.ShowPagesCount / 2 + 1) < 0 ? 0 : PagerBar.PageIndex - parseInt(PagerBar.ShowPagesCount / 2 + 1); //計(jì)算顯示頁數(shù)的其實(shí)頁數(shù)
if (PagerBar.PageCount < PagerBar.ShowPagesCount) {//當(dāng)也總數(shù)小于顯示頁數(shù)量
ShowPageFirest = 0;
}
else {
if (PagerBar.PageIndex > (PagerBar.PageCount - parseInt(PagerBar.ShowPagesCount / 2 + 1))) {//當(dāng)頁總數(shù)在后幾頁顯示
ShowPageFirest = PagerBar.PageCount - PagerBar.ShowPagesCount;
}
}
for (var i = ShowPageFirest; i < ShowPageFirest + PagerBar.ShowPagesCount; i++) {//循環(huán)出書頁數(shù)文本
if (PagerBar.PageIndex == i + 1) {
pagestr += PagerBar.CurrentBarFormat.replace(regexp, i + 1);
}
else {
pagestr += PagerBar.PageBarFormat.replace(regexp, i + 1);
}
if (i >= PagerBar.PageCount - 1) {//當(dāng)?shù)竭_(dá)頁總數(shù)的時(shí)候挑出循環(huán)
break;
}
}
}
return pagestr;
}
function GetNextPageString() {//獲取下一頁鏈接
if (PagerBar.NextBarFormat != "") {
if (PagerBar.RecordCount > PagerBar.PageSize && PagerBar.PageIndex != PagerBar.PageCount) {//輸出下一頁HTMl
return PagerBar.NextBarFormat.replace(regexp, PagerBar.PageIndex + 1);
}
else {
return "";
}
}
else {
return "";
}
}
function GetLastPageString() {//獲取尾頁鏈接
if (PagerBar.LastBarFormat != "" && PagerBar.PageIndex != PagerBar.PageCount && PagerBar.RecordCount != 0) {
return PagerBar.LastBarFormat.replace(regexp, PagerBar.PageCount);
}
else {
return "";
}
}
function GetFrontOtherPageString() {//獲取前其它頁鏈接
if (PagerBar.OtherBarFormat != "") {
if (PagerBar.PageIndex > PagerBar.ShowPagesCount / 2 + 1) {
return PagerBar.OtherBarFormat.replace(regexp, PagerBar.PageIndex - PagerBar.ShowPagesCount <= 0 ? 1 : PagerBar.PageIndex - PagerBar.ShowPagesCount)
}
else {
return "";
}
}
else {
return "";
}
}
function GetAfterOtherPageString() {//獲取后其它頁鏈接
if (PagerBar.OtherBarFormat != "") {
if (PagerBar.PageIndex <= PagerBar.PageCount - PagerBar.ShowPagesCount / 2) {
return PagerBar.OtherBarFormat.replace(regexp,
PagerBar.PageIndex + PagerBar.ShowPagesCount >= PagerBar.PageCount ? PagerBar.PageCount : PagerBar.PageIndex + PagerBar.ShowPagesCount);
}
else {
return "";
}
}
else {
return "";
}
}
function GetCurrentRecordPageString() {//獲取當(dāng)前記錄文本
if (PagerBar.CurrentRecordBarFormat != "") {
if (PagerBar.RecordCount == 0) {
return "";
}
else {
return PagerBar.CurrentRecordBarFormat.replace("{0}", (PagerBar.PageIndex - 1) * PagerBar.PageSize + 1).replace("{1}", PagerBar.PageIndex * PagerBar.PageSize > PagerBar.RecordCount ? PagerBar.RecordCount : PagerBar.PageIndex * PagerBar.PageSize);
}
}
else return "";
}
function GetCurrentPageBarString() {//獲取當(dāng)前頁記錄文本
if (PagerBar.CurrentPageBarFormat != "") {
return PagerBar.CurrentPageBarFormat.replace(regexp, PagerBar.PageIndex);
}
else return "";
}
this.GetString = function (pageindex) {//輸出HTML代碼(全部模式)
if (pageindex != null && NumberRegex.test(pageindex)) {//如果傳入了頁索引則賦值
this.PageIndex = parseInt(pageindex);
}
if (this.PageCount == 0) {//如果沒有計(jì)算過頁總數(shù),則計(jì)算頁總數(shù)
CalculatePageCount(this.PageSize, this.RecordCount);
}
var pagestr = "";
if (this.IsShowCurrentPageString) {
pagestr = GetCurrentPageBarString();
}
if (this.IsShowCurrentRecordString) {
pagestr += GetCurrentRecordPageString();
}
if (this.IsShowFristString) {
pagestr += GetFristPageString();
}
if (this.IsShowPreviouString) {
pagestr += GetPreviouPageString();
}
if (this.IsShowOtherString) {
pagestr += GetFrontOtherPageString();
}
if (this.IsShowPageString) {
pagestr += GetPageString();
}
if (this.IsShowOtherString) {
pagestr += GetAfterOtherPageString();
}
if (this.IsShowNextString) {
pagestr += GetNextPageString();
}
if (this.IsShowLastString) {
pagestr += GetLastPageString();
}
return pagestr;
}
this.GetNormalString = function (pageindex) {
if (pageindex != null && NumberRegex.test(pageindex)) {//如果傳入了頁索引則賦值
this.PageIndex = parseInt(pageindex);
}
if (this.PageCount == 0) {//如果沒有計(jì)算過頁總數(shù),則計(jì)算頁總數(shù)
CalculatePageCount(this.PageSize, this.RecordCount);
}
var pagestr = "";
pagestr += GetFristPageString();
pagestr += GetPreviouPageString();
pagestr += GetPageString();
pagestr += GetNextPageString();
pagestr += GetLastPageString();
return pagestr;
}
this.GetSimpleString = function (pageindex) {
if (pageindex != null && NumberRegex.test(pageindex)) {//如果傳入了頁索引則賦值
this.PageIndex = parseInt(pageindex);
}
if (this.PageCount == 0) {//如果沒有計(jì)算過頁總數(shù),則計(jì)算頁總數(shù)
CalculatePageCount(this.PageSize, this.RecordCount);
}
var pagestr = "";
pagestr += GetPreviouPageString();
pagestr += GetCurrentPageBarString();
pagestr += GetNextPageString();
return pagestr;
}
}
使用示例:
暫無
內(nèi)容中需要的知識點(diǎn)
分頁符《#PageLink》
相關(guān)文章
微信小程序?qū)崿F(xiàn)頁面浮動(dòng)導(dǎo)航
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)頁面浮動(dòng)導(dǎo)航,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01微信小程序移動(dòng)拖拽視圖-movable-view實(shí)例詳解
這篇文章主要介紹了微信小程序移動(dòng)拖拽視圖-movable-view的實(shí)例代碼,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08js實(shí)現(xiàn)仿愛微網(wǎng)兩級導(dǎo)航菜單效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)仿愛微網(wǎng)兩級導(dǎo)航菜單效果代碼,通過javascript自定義函數(shù)結(jié)合鼠標(biāo)點(diǎn)擊事件實(shí)現(xiàn)tab切換的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08JavaScript的事件綁定(方便不支持js的時(shí)候)
看了JavaScript DOM 編程藝術(shù)的Best Practices那章,才知道我們在制作網(wǎng)頁的時(shí)候有很多東西需要考慮2013-10-10JS獲取日期的方法實(shí)例【昨天,今天,明天,前n天,后n天的日期】
這篇文章主要介紹了JS獲取日期的方法,結(jié)合具體實(shí)例分析了javascript計(jì)算昨天,今天,明天,前n天,后n天日期及對應(yīng)的星期幾實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09