当前位置: 代码迷 >> C# >> C#页码领航显示及算法
  详细解决方案

C#页码领航显示及算法

热度:221   发布时间:2016-04-28 08:23:09.0
C#页码导航显示及算法

页码导航,先看显示效果:

算法要求:

1、页数小于等于1时不显示;

2、页数大于10时,自动缩短。

 

具体代码如下:

复制代码
/// <summary>        /// 获取分页导航        /// </summary>        /// <param name="intPageIndex">页码</param>        /// <param name="intPageCount">页数</param>        /// <param name="strUrl">链接</param>        /// <returns>HTML代码</returns>        private string GePageNavgation(int intPageIndex, int intPageCount, string strUrl)        {            StringBuilder sb = new StringBuilder("<div class=\"div_pagenavgation\">");                        if (intPageCount > 1)            {                //页码显示                if (intPageIndex == 1)                {                    sb.Append("<span class=\"disabled\"> <  上一页</span>");                }                else if (intPageIndex > 1)                {                    sb.Append("<a href=\"" + strUrl + (intPageIndex - 1).ToString() + "\"><  上一页</a>");                }                bool Dot1 = false, Dot2 = false;                for (int i = 1; i <= intPageCount; i++)                {                    if (i == intPageIndex)                    {                        sb.Append("<span class=\"current\">" + intPageIndex.ToString() + "</span>");                        continue;                    }                    if (i <= 3)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if (intPageIndex > 7)                    {                        if (!Dot1)                        {                            sb.Append("<span class=\"dotted\">...</span>");                            Dot1 = true;                        }                    }                    if (i == intPageIndex - 3)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if (i == intPageIndex - 2)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if (i == intPageIndex - 1)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if (i == intPageIndex + 1)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if (i == intPageIndex + 2)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if (i == intPageIndex + 3)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                    if ((intPageCount - intPageIndex) > 6 && i > intPageIndex + 3)                    {                        if (!Dot2)                        {                            sb.Append("<span class=\"dotted\">...</span>");                            Dot2 = true;                        }                    }                    if (i > intPageCount - 3)                    {                        sb.Append("<a href=\"" + strUrl + i.ToString() + "\">" + i.ToString() + "</a>");                        continue;                    }                }                if (intPageIndex == intPageCount)                {                    sb.Append("<span class=\"disabled\">下一页  ></span>");                }                else if (intPageIndex + 1 <= intPageCount)                {                    sb.Append("<a href=\"" + strUrl + (intPageIndex + 1).ToString() + "\">下一页  ></a>");                }            }            sb.Append("</div>");            return sb.ToString();        }
复制代码

CSS样式:

复制代码
.div_pagenavgation{    margin-top:5px;    line-height:20px;    float:right;}.div_pagenavgation a{    float:left;    text-decoration:none;    color:#06F;    margin-left:5px;    padding-left:5px;    padding-right:5px;    height:20px;    text-align:center;    display:block;    border:1px #CCC solid;}.div_pagenavgation .dotted{    float:left;    }.div_pagenavgation .current{    float:left;    margin-left:5px;    padding-left:5px;    padding-right:5px;    height:20px;    text-align:center;    display:block;    border:1px #CCC solid ;    background-color:#0080C0;    color:#FFF;}.div_pagenavgation .disabled{    float:left;    margin-left:5px;    padding-left:5px;    padding-right:5px;    height:20px;    text-align:center;    display:block;    border:1px #CCC solid;    color:#CCC;}
复制代码

 

产生的HTML如下:

复制代码
<div class="div_pagenavgation"><a href="?m=log&page=11"><  上一页</a><a href="?m=log&page=1">1</a><a href="?m=log&page=2">2</a><a href="?m=log&page=3">3</a><span class="dotted">...</span><a href="?m=log&page=9">9</a><a href="?m=log&page=10">10</a><a href="?m=log&page=11">11</a><span class="current">12</span><a href="?m=log&page=13">13</a><a href="?m=log&page=14">14</a><a href="?m=log&page=15">15</a><span class="dotted">...</span><a href="?m=log&page=27">27</a><a href="?m=log&page=28">28</a><a href="?m=log&page=29">29</a><a href="?m=log&page=13">下一页  ></a></div>
复制代码

 

  相关解决方案