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的IE和Firefox兼容性汇编(zz)
Feb 02 Javascript
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
js正则表达式的使用详解
Jul 09 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
Nov 28 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
JS制作手机端自适应缩放显示
Jun 11 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
jQuery焦点图左右转换效果
Dec 12 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
在vue中动态添加class类进行显示隐藏实例
Nov 09 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Python程序设计入门(2)变量类型简介
2014/06/16 Python
使用grappelli为django admin后台添加模板
2014/11/18 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
Django如何将URL映射到视图
2019/07/29 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
学习经验交流会主持词
2014/04/01 职场文书
车辆工程专业求职信
2014/04/28 职场文书
捐款活动总结
2014/08/27 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书