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;
    }
}

使用示例:

?
1
2
<SCRIPT type=text/javascript><!--mce:0--></SCRIPT>    <STYLE><!--mce:2--></STYLE>    <DIV id=pager>    </DIV><SCRIPT type=text/javascript><!--mce:1--></SCRIPT>
<PRE></PRE>

JS分页控件,可用于无刷新分页相关推荐

  1. Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据

    Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据 主要是利用 ASPxTreeList 点击事件回发服务器进行数据重新绑定 ASPxTreeList: ? 1 2 &l ...

  2. AJAX中UPDATEPANEL配合TIMER控件实现局部无刷新

    首先加入UpdatePanel <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode= ...

  3. php ajax无刷新分页源码,ajax实现无刷新分页(php)

    投票结果 function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=ne ...

  4. 简单的ASP.NET无刷新分页

    1.新建一个分页存储过程: CREATE procedure [dbo].[P_Pager] (@PageNumber int, @PageSize int) as declare @sql nvar ...

  5. MVC3学习第十三章 佟掌柜第二弹——MVC3下利用陕北吴旗娃的分页控件实现数据分页...

    本章学习内容 1.了解陕北吴旗娃的Mvc分页控件 2.利用分页控件实现MVC3下的商品分页 3.利用分页控件实现MVC3下一个页面多个分页以及ajax分页效果 1.了解陕北吴旗娃的Mvc分页控件 在w ...

  6. Winform分页控件之纯分页显示处理

    在之前介绍的Winform分页控件中,都以分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情 ...

  7. 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】

    ================================ 欢迎转载,但是请注明出处.本文出自博客园 .谢谢合作! ================================ 最新版本:V ...

  8. 【开源】我的分页控件正式命名为QuickPager ASP.NET2.0分页控件

    分页控件正式命名为 QuickPager ASP.NET2.0分页控件 . 版本号:2.0.0.1 Framework:.net2.0 分页方式:PostBack .URL (暂时没有实现URL的分页 ...

  9. 使用amaze ui的分页样式封装一个通用的JS分页控件

    作为一名码农,天天百度.偶尔谷歌,所有代码全靠copy,用第三方插件,偶尔也想着造造轮子,毕竟自己的骨肉总归比较亲. 今天有点空闲时间,想起我们公司之前套的页面的分页插件上还有bug,而写那个分页插件 ...

最新文章

  1. POJ-1041 John's trip
  2. php伪类型,解密PHP伪类型和伪变量的含义
  3. 开源,是一种新的平台之战
  4. MySQL中Myisam、InnoDB碎片优化
  5. 『TensorFlow』SSD源码学习_其二:基于VGG的SSD网络前向架构
  6. extundelete反删除总结
  7. 行人重识别的挑战与最新进展(35页PPT整理)
  8. IBM云计算架构师:Mesos新功能以及roadmap简介
  9. Trend Micro Password Manager 多个高危漏洞
  10. WPF 凭证分录控件
  11. Ubuntu16.04+NVIDIA显卡驱动安装步骤
  12. 深入研究Clang(十六) Clang Driver库的ToolChain
  13. 串口termios函数
  14. Arduino+DHT11+OLED显示温湿度信息(附详细文档+源码)
  15. 在哪些场景下要使用CDN加速服务
  16. VC++ 动态检测串口的热插拔(一)通过遍历实现
  17. NT151应用案例:西门子PLC S7-1200与派克ACR9000的通信(Part 3)
  18. hive中关键字作为列名的方法
  19. Android实现RecyclerView二级列表可折叠展开选中
  20. 动手学深度学习-pytorch 导入d2lzh_pytorch模块时报错 No moudel named 'd2lzh_pytorch'

热门文章

  1. 熟悉mysql数据库设计和性能优化_Mysql数据库性能优化
  2. java凉的可能性,薄荷凉茶一凉到底
  3. ConvolverNode
  4. 编程语言对比 执行文件
  5. 4.7 参数 VS 超参数
  6. Excel Txt 字符集设置
  7. C++vector容器
  8. 支持的vCenter Server High Availability选项(2096800)
  9. 商城系统学习总结(1)——订单与库存在高并发场景下案例解析
  10. Spring MVC学习总结(17)——SpringMVC之接口规范与Controller规范