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 相关文章推荐
jquery ui resizable bug解决方法
Oct 26 Javascript
JQuery datepicker 使用方法
May 20 Javascript
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
js中根据字数截取字符串,不能截断url
Jan 12 Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
Jun 16 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
使用JavaScript获取Request中参数的值方法
Sep 27 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
google广告之另类js调用实现代码
Aug 22 Javascript
基于ant design日期控件使用_仅月份的操作
Oct 27 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
php5.2时间相差8小时
2007/01/15 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
php实现的操作excel类详解
2016/01/15 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
Python二分查找详解
2015/09/13 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python3安装speech语音模块的方法
2018/12/24 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
销售职业生涯规划范文
2014/03/14 职场文书
会计实训报告范文
2014/11/04 职场文书
办公室主任岗位职责
2015/01/31 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle