页码导航,先看显示效果:
算法要求:
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如下:
说明:很久前赶工完成,基本能够实现要求,没有经过仔细优化,谁优化了再回复看看!