C#頁(yè)碼導(dǎo)航顯示及算法實(shí)現(xiàn)代碼
更新時(shí)間:2012年12月20日 16:10:02 作者:
C#頁(yè)碼導(dǎo)航算法要求:頁(yè)數(shù)小于等于1時(shí)不顯示;頁(yè)數(shù)大于10時(shí),自動(dòng)縮短,需要的朋友可以了解下
頁(yè)碼導(dǎo)航,先看顯示效果:

算法要求:
1、頁(yè)數(shù)小于等于1時(shí)不顯示;
2、頁(yè)數(shù)大于10時(shí),自動(dòng)縮短。
具體代碼如下:
/// <summary>
/// 獲取分頁(yè)導(dǎo)航
/// </summary>
/// <param name="intPageIndex">頁(yè)碼</param>
/// <param name="intPageCount">頁(yè)數(shù)</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)
{
//頁(yè)碼顯示
if (intPageIndex == 1)
{
sb.Append("<span class=\"disabled\"> < 上一頁(yè)</span>");
}
else if (intPageIndex > 1)
{
sb.Append("<a href=\"" + strUrl + (intPageIndex - 1).ToString() + "\">< 上一頁(yè)</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\">下一頁(yè) ></span>");
}
else if (intPageIndex + 1 <= intPageCount)
{
sb.Append("<a href=\"" + strUrl + (intPageIndex + 1).ToString() + "\">下一頁(yè) ></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;
}
產(chǎn)生的HTML如下:
<div class="div_pagenavgation">
<a href="?m=log&page=11">< 上一頁(yè)</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">下一頁(yè) ></a>
</div>
說(shuō)明:很久前趕工完成,基本能夠?qū)崿F(xiàn)要求,沒(méi)有經(jīng)過(guò)仔細(xì)優(yōu)化,誰(shuí)優(yōu)化了再回復(fù)看看!

算法要求:
1、頁(yè)數(shù)小于等于1時(shí)不顯示;
2、頁(yè)數(shù)大于10時(shí),自動(dòng)縮短。
具體代碼如下:
復(fù)制代碼 代碼如下:
/// <summary>
/// 獲取分頁(yè)導(dǎo)航
/// </summary>
/// <param name="intPageIndex">頁(yè)碼</param>
/// <param name="intPageCount">頁(yè)數(shù)</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)
{
//頁(yè)碼顯示
if (intPageIndex == 1)
{
sb.Append("<span class=\"disabled\"> < 上一頁(yè)</span>");
}
else if (intPageIndex > 1)
{
sb.Append("<a href=\"" + strUrl + (intPageIndex - 1).ToString() + "\">< 上一頁(yè)</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\">下一頁(yè) ></span>");
}
else if (intPageIndex + 1 <= intPageCount)
{
sb.Append("<a href=\"" + strUrl + (intPageIndex + 1).ToString() + "\">下一頁(yè) ></a>");
}
}
sb.Append("</div>");
return sb.ToString();
}
CSS樣式:
復(fù)制代碼 代碼如下:
.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;
}
產(chǎn)生的HTML如下:
復(fù)制代碼 代碼如下:
<div class="div_pagenavgation">
<a href="?m=log&page=11">< 上一頁(yè)</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">下一頁(yè) ></a>
</div>
說(shuō)明:很久前趕工完成,基本能夠?qū)崿F(xiàn)要求,沒(méi)有經(jīng)過(guò)仔細(xì)優(yōu)化,誰(shuí)優(yōu)化了再回復(fù)看看!
相關(guān)文章
ASP.NET Core中的響應(yīng)壓縮的實(shí)現(xiàn)
這篇文章主要介紹了ASP.NET Core中的響應(yīng)壓縮的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
詳解免費(fèi)高效實(shí)用的.NET操作Excel組件NPOI(.NET組件介紹之六)
這篇文章主要介紹了詳解免費(fèi)高效實(shí)用的.NET操作Excel組件NPOI(.NET組件介紹之六),具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12
.NET輕松實(shí)現(xiàn)Excel轉(zhuǎn)PDF的三種方法詳解
這篇文章主要為大家詳細(xì)介紹了.NET中輕松實(shí)現(xiàn)Excel轉(zhuǎn)PDF的三種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01
asp.net 實(shí)現(xiàn)防迅雷等下載工具盜鏈
利用IHttpHandler接口來(lái)監(jiān)聽(tīng)對(duì)本網(wǎng)站的資源請(qǐng)求后綴名是否是我們要阻止的文件,如果是再判斷是否有下載權(quán)限。沒(méi)有就給它返回一個(gè)默認(rèn)的無(wú)用的文件。2009-02-02
ajaxToolkit:TextBoxWatermarkExtender演示與實(shí)現(xiàn)代碼
該控件的效果就是在TextBox控件上添加“水印”效果,也就是當(dāng)TextBox為空時(shí),顯示提示消息,一旦TextBox聚焦,樣式就消失,看起來(lái)還挺不錯(cuò)的嗎,感興趣的你可以了解下哦,希望本文對(duì)你有所幫助2013-01-01
asp.net Javascript 的幾種寫(xiě)法與提示
asp.net Javascript 的幾種寫(xiě)法與提示,需要的朋友可以參考下。2009-10-10

