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 相关文章推荐
javascript将url中的参数加密解密代码
Nov 17 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
Aug 24 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
jquery实现折叠菜单效果【推荐】
Mar 08 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
Jul 31 Javascript
Vue实现web分页组件详解
Nov 28 Javascript
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
layer弹出层显示在top顶层的方法
Sep 11 Javascript
关于JS模块化的知识点分享
Oct 16 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
JavaScript实现班级抽签小程序
May 19 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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
PHP 8新特性简介
2020/08/18 PHP
Javascript 继承机制实例
2009/08/12 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
chrome调试javascript详解
2015/10/21 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
Python 字典dict使用介绍
2014/11/30 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python 操作hive pyhs2方式
2019/12/21 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
python中如何使用虚拟环境
2020/10/14 Python
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
党员批评与自我批评
2014/02/12 职场文书
房地产促销活动方案
2014/03/01 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
家长学校教学计划
2015/01/19 职场文书
检察院起诉书
2015/05/20 职场文书
信息简报范文
2015/07/21 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
python pygame 开发五子棋双人对弈
2022/05/02 Python