zoukankan      html  css  js  c++  java
  • 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;
        }
    }

        使用示例:

    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>
  • 相关阅读:
    linux终端发送邮件
    ubuntu交换Caps 和 ESC
    pycharm快捷键
    python catch socket timeout
    pgsql restart
    python re.sub
    文件写入与缓存
    HTTP协议再分析
    leetcode-45
    Java的锁
  • 原文地址:https://www.cnblogs.com/zhwl/p/2502737.html
Copyright © 2011-2022 走看看