分页翻页按钮用程序计算拼接

这是一个关于如何在ASP.NET中使用代码动态生成分页导航条的示例。方法接受当前页、每页显示条数、总条数、总页数和链接地址作为参数,生成包含上一页、下一页和中间页码的HTML代码。通过调整参数,可以适应不同场景的分页需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页,为了能够被蜘蛛爬虫

 

 /// <summary>
        /// 分页的显示分页上一下下一页 bar
        /// </summary>
        /// <param name="p">当前页</param>
        /// <param name="PageSize">//每页显示条数</param>
        /// <param name="pageCounts">总条数</param>
        /// <param name="pagec">总页数</param>
        /// <param name="pageHref">链接地址</param>
        /// <returns></returns>
        public string NewsPage(string p, int PageSize, int pageCounts, int pagec, string pageHref)
        {
            string pagehtml = "";
            pagehtml += "<div class=\"fr page-box\">";
            pagehtml += "<p class=\"pagination-info\">";
            pagehtml += "<span>" + p + "</span>/";
            pagehtml += "<span class=\"col-1\">" + pagec + "</span>页";
            pagehtml += "</p>";

            pagehtml += "<ul class=\"pagination\">";

            int pageIndex = Convert.ToInt32(p);  //当前页
            int count = PageSize; //每个页面大小
            int allCount = pageCounts;  //所有数据量
            //pageHref = "/analysis";  //按钮链接

            var forCount = 5; //每次循环生成几个按钮
            var pageCount = pagec; //总页面数

            //如果没有数据或者页面数过大直接返回
            if ((pageIndex > pageCount) || (allCount == 0))
            {

                return "";
            }

            //-------------一下是分页HTML生成

            //---------上一页按钮
            if (pageIndex > 1 && pageIndex <= pageCount)
            {
                pagehtml += "<li><a href=\"" + pageHref + "&page=" + (pageIndex - 1) + "\" aria-label=\"Previous\"><span aria-hidden=\"true\">«</span></a></li>";

            }
            //---------


            //---------中间按钮

            //循环生成中间的按钮
            var pagestart = 1;//页面循环开始
            var pageend = 5;//页面循环结束
            var harfcount = Math.Ceiling(Convert.ToDouble(forCount / 2)); //计算出前后要递减与递增的页面
                                                                          //如果总页面小于要循环的页面数就直接生成1-总页面数
            var harfstar = pageIndex - harfcount;
            var harfend = pageIndex + harfcount;
            if (pageCount < forCount)
            {
                pageend = pageCount;
            }
            else
            {
                //分页开始点处理
                if (harfstar > 0)
                {
                    pagestart = Convert.ToInt32(harfstar);
                }
                //分页结束点处理
                if (harfend > pageCount)
                {
                    pageend = pageCount;
                }
                else
                {
                    pageend = Convert.ToInt32(harfend);
                }
                //判断如果当前要显示的页面数量小于显示总量
                if (pageend - pagestart + 1 < forCount)
                {
                    var sufix = forCount - (pageend - pagestart + 1);
                    if (pageend - pageIndex < pageIndex - pagestart)
                    {
                        pagestart -= sufix;
                    }
                    else
                    {
                        pageend += sufix;
                    }
                }

            }
            for (var i = pagestart; i <= pageend; i++)
            {
                if (i == pageIndex)
                {
                    pagehtml += "<li class=\"cur\"><a href=\"" + pageHref + "&page=" + (i) + "\" >" + i + "</a></li>";
                }
                else
                {
                    pagehtml += "<li><a href=\"" + pageHref + "&page=" + (i) + "\" >" + i + "</a></li>";
                }
            }
            //---------

            //---------下一页按钮
            if (pageIndex < pageCount)
            {
                pagehtml += "<li><a href=\"" + pageHref + "&page=" + (pageIndex + 1) + "\" aria-label=\"Next\"><span aria-hidden=\"true\">»</span></a></li>";

            }

            pagehtml += "</ul>";
            pagehtml += "</div>";
            pagehtml += "<div class=\"clear\"></div>";
            return pagehtml;
        }

 


.text-center {text-align: center;}

.page-box{ text-align: center; margin-top: 30px;}
.pagination-info{display: inline-block; vertical-align: top; line-height: 34px;}
.pagination{display: inline-block; vertical-align: top; margin: 0 15px;}
.pagination-goto{display: inline-block; vertical-align: top; line-height: 34px;}
.qzqqPop-con img{ width: 100%;}
.qzqqPop-con li{ display: none;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值