C#页码导航显示及算法实现代码_asp.net教程-查字典教程网
C#页码导航显示及算法实现代码
C#页码导航显示及算法实现代码
发布时间:2016-12-29 来源:查字典编辑
摘要:页码导航,先看显示效果:算法要求:1、页数小于等于1时不显示;2、页数大于10时,自动缩短。具体代码如下:复制代码代码如下://////获取...

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

算法要求:

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>");

if (intPageCount > 1)

{

//页码显示

if (intPageIndex == 1)

{

sb.Append("<span> < 上一页</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>" + 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>...</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>...</span>");

Dot2 = true;

}

}

if (i > intPageCount - 3)

{

sb.Append("<a href="" + strUrl + i.ToString() + "">" + i.ToString() + "</a>");

continue;

}

}

if (intPageIndex == intPageCount)

{

sb.Append("<span>下一页 ></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>

<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>...</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>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>...</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>

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类