C#页码导航显示及算法实现代码

2329人浏览 / 0人评论
页码导航,先看显示效果:

算法要求
1、页数小于等于1时不显示;
2、页数大于10时,自动缩短。
具体代码如下:
复制代码 代码如下:

///
/// 获取分页导航
///
/// 页码
/// 页数
/// 链接
/// HTML代码
private string GePageNavgation(int intPageIndex, int intPageCount, string strUrl)
{
StringBuilder sb = new StringBuilder("
");
if (intPageCount > 1)
{
//页码显示
if (intPageIndex == 1)
{
sb.Append(" < 上一页");
}
else if (intPageIndex > 1)
{
sb.Append("< 上一页");
}
bool Dot1 = false, Dot2 = false;
for (int i = 1; i <= intPageCount; i++)
{
if (i == intPageIndex)
{
sb.Append("" + intPageIndex.ToString() + "");
continue;
}
if (i <= 3)
{
sb.Append("" + i.ToString() + "");
continue;
}
if (intPageIndex > 7)
{
if (!Dot1)
{
sb.Append("...");
Dot1 = true;
}
}
if (i == intPageIndex - 3)
{
sb.Append("" + i.ToString() + "");
continue;
}
if (i == intPageIndex - 2)
{
sb.Append("" + i.ToString() + "");
continue;
}
if (i == intPageIndex - 1)
{
sb.Append("" + i.ToString() + "");
continue;
}
if (i == intPageIndex + 1)
{
sb.Append("" + i.ToString() + "");
continue;
}
if (i == intPageIndex + 2)
{
sb.Append("" + i.ToString() + "");
continue;
}
if (i == intPageIndex + 3)
{
sb.Append("" + i.ToString() + "");
continue;
}
if ((intPageCount - intPageIndex) > 6 && i > intPageIndex + 3)
{
if (!Dot2)
{
sb.Append("...");
Dot2 = true;
}
}
if (i > intPageCount - 3)
{
sb.Append("" + i.ToString() + "");
continue;
}
}
if (intPageIndex == intPageCount)
{
sb.Append("下一页 >");
}
else if (intPageIndex + 1 <= intPageCount)
{
sb.Append("下一页 >");
}
}
sb.Append("
");
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如下:
复制代码 代码如下:

说明:很久前赶工完成,基本能够实现要求,没有经过仔细优化,谁优化了再回复看看!

全部评论

晴天下起了小雨
2017-10-01 18:00
很喜欢,果断关注了
wjmyly7336064
2017-10-01 18:00
相当实用,赞美了
橘大佬
2017-10-01 18:00
就是有些细节再到位点就好了…