生成分页代码

来源:互联网 发布:县医院 网络图片图 编辑:程序博客网 时间:2024/06/06 08:26
        /// <summary>        /// 生成分页代码        /// </summary>        /// <param name="totalPageNo">总页数</param>        /// <param name="pageNo">当前页</param>        /// <param name="parameters">参数(&开头)</param>        /// <param name="showPageCount">分页中间部分的显示的页码数量</param>        /// <returns></returns>        protected string BulidPage(int totalPageNo, int pageNo, string parameters, int showPageCount = 10)        {            StringBuilder strPage = new StringBuilder("");            strPage.Append("<div class=\"pageBox\">");            //如果仅有一页,那么不显示分页            if (totalPageNo == 1)                return "";            #region 不合理判断                        if (pageNo > totalPageNo)                pageNo = totalPageNo;            #endregion                        #region 拼接首页和上一页            if (pageNo == 1)                strPage.Append("<a class=\"disabled\">首页</a><a class=\"disabled\">上一页</a>");            else                strPage.Append("<a href=\"News.aspx?pageNo=1" + parameters + "\">首页</a><a href=\"News.aspx?pageNo=" + (pageNo - 1) + parameters + "\">上一页</a>");            #endregion            #region 拼接中间部分            if (showPageCount > 0)             {                //分页共几屏                //eg:2屏                //①【首页 上一页 1 2 3 4 5 下一页 尾页】  ②【首页 上一页 6 7 8 9 10 下一页 尾页】                //eg:3屏                //①【首页 上一页 1 2 3 4 5 下一页 尾页】  ②【首页 上一页 6 7 8 9 10 下一页 尾页】  ③【首页 上一页 11 12 下一页 尾页】                int totalDuan = totalPageNo % showPageCount == 0 ? totalPageNo / showPageCount : totalPageNo / showPageCount + 1;                //当前页码在分页的第几屏                int currDuan = pageNo % showPageCount == 0 ? pageNo / showPageCount : pageNo / showPageCount + 1;                //第一种情况:不显示省略号(就一屏)                if (totalDuan == 1)   //totalPageNo <= showPageCount                {                    for (int i = 1; i < totalPageNo + 1; i++)                    {                        if (pageNo == i)                            strPage.Append("<span class=\"current\">" + i + "</span>");                        else                            strPage.Append("<a href=\"News.aspx?pageNo=" + i + parameters + "\">" + i + "</a>");                    }                }                else                {                    //判断左边是否添加省略号                    if (currDuan > 1)                    {                        strPage.Append("<span>…</span>");                    }                    //拼接中间部分页码                    if (currDuan != totalDuan)                    {                        for (int i = (currDuan - 1) * showPageCount + 1; i < currDuan * showPageCount + 1; i++)                        {                            if (pageNo == i)                                strPage.Append("<span class=\"current\">" + i + "</span>");                            else                                strPage.Append("<a href=\"News.aspx?pageNo=" + i + parameters + "\">" + i + "</a>");                        }                    }                    else                    {                        for (int i = (currDuan - 1) * showPageCount + 1; i < totalPageNo + 1; i++)                        {                            if (pageNo == i)                                strPage.Append("<span class=\"current\">" + i + "</span>");                            else                                strPage.Append("<a href=\"News.aspx?pageNo=" + i + parameters + "\">" + i + "</a>");                        }                    }                    //判断右边是否添加省略号                    if (currDuan < totalDuan)                    {                        strPage.Append("<span>…</span>");                    }                }            }                        #endregion            #region 拼接下一页和尾页            if (pageNo == totalPageNo)                strPage.Append("<a class=\"disabled\">下一页</a><a class=\"disabled\">尾页</a>");            else                strPage.Append("<a href=\"News.aspx?pageNo=" + (pageNo + 1) + parameters + "\">下一页</a><a href=\"News.aspx?pageNo=" + totalPageNo + parameters + "\">尾页</a>");            #endregion            strPage.Append("</div>");            return strPage.ToString();        }

样式部分:

    <style type="text/css">        .pageBox{ margin:20px 0; text-align:center;}        .pageBox a{ margin:0 5px; border:1px solid #DDD; padding:5px 10px;}        .pageBox a.disabled{ background:#EEE;}        .pageBox span.current{ color:#FF0000;}        .pageBox span{ margin:0 5px; border:1px solid #DDD; padding:5px 10px;}    </style>


0 0