zoukankan      html  css  js  c++  java
  • asp.net自制分页页码条控件

    用过微软的服务器控件分页的人都知道~那卡的一A啊~

    遂想自制分页页码条控件以备不时之需。

    走你~

    public static class PageShow
        {
            /// <summary>
            /// 分页页码条
            /// </summary>
            /// <param name="requestHref">请求的地址</param>
            /// <param name="totalCount">数据总条数</param>
            /// <param name="currentPage">当前页码</param>
            /// <param name="pageSize">每页个数</param>
            /// <returns></returns>
            public static string Show(string requestHref, int totalCount, int currentPage, int pageSize)
            {
                //初始化pageSize和totalPages
                pageSize = pageSize == 0 ? 6 : pageSize;//默认为每页显示6条数据
                var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//Math.Ceiling(totalCount / (pageSize / 1.0));//使用Ceiling函数也可以,效果是一样的,根据数据的总条数和每页要显示的个数,计算出总页数,如:共有96条数据,每页显示6条,则总页数为16
                var outPut = new StringBuilder();//构建输出字符串
                outPut.AppendFormat("<div class='pagination'>");//所有的样式需要自定义
                //当总页数大于一页才分页显示,否则直接显示出该页
                if (totalPages > 1)
                {
                    //当前页面不是第一页的时候显示首页链接
                    if (currentPage != 1)
                    {
                        outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex=1&&pageSize={1}'>首页</a>"
                                            , requestHref, pageSize);
                    }
                    //当前页面大于第一页的时候显示上一页链接
                    if (currentPage > 1)
                    {
                        outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>上一页</a>"
                            , requestHref, currentPage - 1, pageSize);
                    }
                    //否则上一页无法点击
                    else
                    {
                        outPut.AppendFormat("<span class='disabled'>上一页</span>");
                    }
                    outPut.Append(" ");
                    //循环输出页面列表
                    const int currint = 3;
                    //最多有6个超链接,前3个后3个
                    for (int i = 0; i < 6; i++)
                    {
                        if (currentPage + i - currint >= 1 && currentPage + i - currint <= totalPages)
                        {
                            if (currint == i)
                            {
                                outPut.AppendFormat("<span class='disabled'>{0}</span>", currentPage + i - currint);
                            }
                            else
                            {
                                outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>{3}</a>"
                                    , requestHref, currentPage + i - currint, pageSize, currentPage + i - currint);
                            }
                        }
                        outPut.Append(" ");
                    }
                    if (currentPage < totalPages)
                    {
                        outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>下一页</a>"
                                        , requestHref, currentPage + 1, pageSize);
                    }
                    else
                    {
                        outPut.AppendFormat("<span class='disabled'>下一页</span>");
                    }
                    outPut.Append(" ");
                    if (currentPage != totalPages)
                    {
                        outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>末页</a>"
                                        , requestHref, totalPages, pageSize);
                    }
                    outPut.Append(" ");
                }
                outPut.AppendFormat("第{0}页/共{1}页", currentPage, totalPages);
                outPut.AppendFormat("</div>");
                return outPut.ToString();
            }
        }




  • 相关阅读:
    第四节 哈希类型
    第三节 string类型
    第二节 redis的数据类型和一些通用的键命令
    第一节 Redis的安装配置
    第三十二节 定时器
    第三十一节 sed命令
    第三十节 awk命令
    第二十九节 cut命令
    第二十八节 函数和脚本调试
    Gartner 如何看 RASP 和 WAF?
  • 原文地址:https://www.cnblogs.com/jchubby/p/4429756.html
Copyright © 2011-2022 走看看