JS分页控件 可用于无刷新分页


Posted in Javascript onJuly 23, 2013

JS分页控件,可用于无刷新分页

function PagerBar(recordcount, pagesize, pageindex, showpagecount) { 
    var NumberRegex = new RegExp(/^\d+$/); 
    this.PageIndex = 1; //页索引,当前页 
    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); //记录总数 
    this.PageCount = 0;  //页总数 
    var PagerBar = this; 
    function CalculatePageCount(_pagesize, _recordcount) {//计算总页数 
        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) {//计算总也页数 
            PagerBar.PageCount = parseInt(PagerBar.RecordCount / PagerBar.PageSize); 
        } 
        else { 
            PagerBar.PageCount = parseInt(PagerBar.RecordCount / PagerBar.PageSize) + 1; 
        } 
    } 
    if (this.RecordCount != 0) {//如果传入了记录总数则计算总页数 
        CalculatePageCount(this.PageSize, this.RecordCount); 
    } 
    this.ReplaceString = "《#PageLink》"; //替换页数的文本,注:不可以有正则表达式中的符号 
    this.ShowPagesCount = 5; //显示页数量 
    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 = ""; //当前页显示文本格式 
    this.IsShowPageString = true; //是否显示页索引 
    this.FristBarFormat = ""; //首页链接显示文本格式 
    this.IsShowFristString = true; //是否显示首页 
    this.LastBarFormat = ""; //尾页显示文本格式 
    this.IsShowLastString = true; //是否显示尾页 
    this.CurrentRecordBarFormat = "当前记录{0}-{1}"; //当前记录显示文本格式 
    this.IsShowCurrentRecordString = true; //是否显示当前记录 
    this.CurrentPageBarFormat = "当前第" + this.ReplaceString + "页,共" + (this.PageCount == 0 ? 1 : this.PageCount) + "页"; //当前页文字说明文本格式 
    this.IsShowCurrentPageString = true; //是否显示当前页文字说明文本 
    this.OtherBarFormat = ""; //其他也显示文本 
    this.IsShowOtherString = true; //是否显示其它页文本 
    var regexp = new RegExp(this.ReplaceString, "g"); //替换页数文本正则表达式 
    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() {//获取中间页数链接 
        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); //计算显示页数的其实页数 
            if (PagerBar.PageCount < PagerBar.ShowPagesCount) {//当也总数小于显示页数量 
                ShowPageFirest = 0; 
            } 
            else { 
                if (PagerBar.PageIndex > (PagerBar.PageCount - parseInt(PagerBar.ShowPagesCount / 2 + 1))) {//当页总数在后几页显示 
                    ShowPageFirest = PagerBar.PageCount - PagerBar.ShowPagesCount; 
                } 
            } 
            for (var i = ShowPageFirest; i < ShowPageFirest + PagerBar.ShowPagesCount; i++) {//循环出书页数文本 
                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) {//当到达页总数的时候挑出循环 
                    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() {//获取当前记录文本 
        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() {//获取当前页记录文本 
        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) {//如果没有计算过页总数,则计算页总数 
            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) {//如果没有计算过页总数,则计算页总数 
            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) {//如果没有计算过页总数,则计算页总数 
            CalculatePageCount(this.PageSize, this.RecordCount); 
        } 
        var pagestr = ""; 
        pagestr += GetPreviouPageString(); 
        pagestr += GetCurrentPageBarString(); 
        pagestr += GetNextPageString(); 
        return pagestr; 
    } 
}

使用示例:

暂无

内容中需要的知识点
分页符《#PageLink》

Javascript 相关文章推荐
简单的JS多重继承示例
Mar 13 Javascript
javascript cookie解码函数(兼容ff)
Mar 17 Javascript
javascript实现状态栏中文字动态显示的方法
Oct 20 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
JavaScript里 ==与===区别详解
Aug 16 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
express框架实现基于Websocket建立的简易聊天室
Aug 10 Javascript
React中的render何时执行过程
Apr 13 Javascript
VUE安装使用教程详解
Jun 03 Javascript
Vue时间轴 vue-light-timeline的用法说明
Oct 29 Javascript
JS canvas实现画板和签字板功能
Feb 23 Javascript
详细谈谈JavaScript中循环之间的差异
Aug 23 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 #Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 #Javascript
用jQuery获取IE9下拉框默认值问题探讨
Jul 22 #Javascript
JS 实现图片直接下载示例代码
Jul 22 #Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 #Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 #Javascript
JS判定是否原生方法
Jul 22 #Javascript
You might like
PHP文件下载类
2006/12/06 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
jquery使用经验小结
2015/05/20 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
Python写的一个简单监控系统
2015/06/19 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python 生成器协程运算实例
2017/09/04 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
python实现字典嵌套列表取值
2019/12/16 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
小学科学教学反思
2014/01/26 职场文书
业务内勤岗位职责
2014/04/30 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android