c#偏移量分页效果
c#偏移量分页效果
分页效果对程序员来所是常见的,但是在这里我介绍的是一个不一样的分页效果,也许你们也长用,偏移量的分页效果,以前学的不精所以研究一好久觉得还是拿出来分享一下吧,同时也让我记住。好了光说大家可定没兴趣,来个效果图吧:
这个效果想必大家不陌生吧。
先介绍一下偏移量的思路吧,也方便我以后好记起,呵呵私心哈,但谁都会有忘性滴。。。
思路第一步:获取总页数,每页显示多少个,当前页码,和样式。在此在这里css样式也作为参数传递了。
思路第二步:上一页,下一页和记录分页位置(分页偏移量)
思路第三步:排除过其他可能性的判断后就是分页的过程考虑了,首先我以10为界限吧,如果当前页<10或者不是最后10页,还有就是正常分页的效果了。我个人就分这三步吧,下面就开始我们的工程吧。
View Code
1 /* ------------------------------------分页开始--------------------------------------------- */ 2 /* *分页样式1 */ 3 .pages2 { font : 12px Arial, Helvetica, sans-serif ; padding : 10px 20px 10px 0 ; margin : 0px ;} 4 .pages2 a { padding : 1px 6px ; border : solid 1px #ddd ; background : #fff ; text-decoration : none ; margin-right : 2px } 5 .pages2 a:visited { padding : 1px 6px ; border : solid 1px #ddd ; background : #fff ; text-decoration : none ;} 6 .pages2 .cpb { padding : 1px 6px ; font-weight : bold ; font-size : 12px ; border : none } 7 .pages2 a:hover { color : #fff ; background : #ffa501 ; border-color : #ffa501 ; text-decoration : none ;} 8 /* *分页样式2 */ 9 10 .pages1 .cpb { font-size : 12px ; background : #1F3A87 none repeat scroll 0 0 ; border : 1px solid #CCCCCC ; color : #FFFFFF ; font-weight : bold ; margin : 5px 4px 0 0 ; padding : 4px 5px 0 ;} 11 .pages1 a { background : #FFFFFF none repeat scroll 0 0 ; border : 1px solid #CCCCCC ; color : #1F3A87 ; margin : 5px 4px 0 0 ; padding : 4px 5px 0 ; text-decoration : none ; font-size : 12px } 12 .pages1 a:hover { background : #1F3A87 none repeat scroll 0 0 ; border : 1px solid #1F3A87 ; color : #FFFFFF ; font-size : 14px } 13 14 /* *分页样式3 */ 15 .pages { color : #999 ; } 16 .pages a, .pages .cpb { text-decoration : none ; float : left ; padding : 0px 5px ; border : 1px solid #ddd ; background : #ffff ; margin : 0 2px ; font-size : 12px ; color : #000 ;} 17 .pages a:hover { background-color : #E61636 ; color : #fff ; border : 1px solid #E61636 ; text-decoration : none ;} 18 .pages .cpb { font-weight : bold ; color : #fff ; background : #E61636 ; border : 1px solid #E61636 ;} 19 /* ------------------------------------分页结束--------------------------------------------- */
这个是css分页的样式。也是借用别人写的,稍微改一下而已。三种样式随意变换。
protected StringBuilder GetPagerHtml(int total,int size,int page,string css)
{
}利用这个方法来传值/// <summary>
/// 分页效果
/// </summary>
/// <param name="total">总记录数</param>
/// <param name="size">每页显示的条数</param>
/// <param name="page">当前的页码</param>
/// <param name="css">分页效果</param>
/// <returns></returns>
View Code
1 StringBuilder sb = new StringBuilder(); 2 sb.Append( @" <div id=""pager"" class="" " +css+ @" ""> " ); 3 // 总页数 4 int allpage = 0 ; 5 if (size != 0 ) 6 { 7 // 整除 8 allpage = total / size; 9 // 非整除 10 allpage = ((total % size) != 0 ? allpage+ 1 : allpage); 11 // 和0比较 12 allpage = total == 0 ? 1 : allpage; 13 } 14 // 判断页码和总页数 15 if (page > allpage) 16 { 17 page = allpage; 18 } 19 if (page < 1 ) 20 { 21 page = 1 ; 22 } 23 24 // 上一页和下一页 25 int pre = page - 1 ; 26 int next = page + 1 ; 27 28 // 记录分页位置(分页偏移量) 29 int startcount = 0 ; 30 if (startcount <= 0 ) 31 { 32 startcount = 1 ; 33 } 34 #region 判断分页 35 /* ---------------设置上一页-------------------- */ 36 if (page > 1 ) 37 { 38 sb.Append( @" <a disabled=""disabled"" href=""javascript:page( " + pre + @" )"" style=""margin-right:5px;"">上一页</a> " ); 39 } 40 else 41 { 42 sb.Append( @" <span class=""cpb"" style=""margin-right:5px;"">上一页</span> " ); 43 } 44 #endregion
完成第二步的操作。
下面开始第三步吧,写的有点乱了,,
View Code
1 #region 分页开始 2 if (allpage < 50 ) 3 { 4 for ( int i = 1 ; i <= allpage; i++ ) 5 { 6 if (page == i) 7 { 8 sb.Append( @" <span class=""cpb"" style=""margin-right:5px;""> " + i + @" </span> " ); 9 } 10 else 11 { 12 sb.Append( @" <a disabled=""disabled"" href=""javascript:page( " + i + @" )"" style=""margin-right:5px;""> " + i + @" </a> " ); 13 } 14 } 15 } 16 else 17 { 18 startcount = (page+ 10 ) > allpage? allpage- 5 : page- 10 ; 19 20 #region 当前页小于10 21 if (page < 10 ) 22 { 23 for ( int i = 1 ; i <= 10 ; i++ ) 24 { 25 if (page == i) 26 { 27 sb.Append( @" <span class=""cpb"" style=""margin-right:5px;""> " + i + @" </span> " ); 28 } 29 else 30 { 31 sb.Append( @" <a disabled=""disabled"" href=""javascript:page( " + i + @" )"" style=""margin-right:5px;""> " + i + @" </a> " ); 32 } 33 } 34 } 35 else { 36 // 如果不是最后10页 37 if (page < allpage - 10 ) 38 { 39 for ( int i = startcount; i < startcount + 10 ; i++ ) 40 { 41 if (page == i) 42 { 43 sb.Append( @" <span class='cpb' style='margin-right:5px;'> " + i + @" </span> " ); 44 } 45 else 46 { 47 sb.Append( @" <a href=""javascript:page( " + i + @" )"" style='margin-right:5px;'> " + i + @" </a> " ); 48 } 49 } 50 } 51 else 52 { 53 for ( int i = allpage - 10 ; i <= allpage; i++ ) 54 { 55 if (page == i) 56 { 57 sb.Append( @" <span class=""cpb"" style=""margin-right:5px;""> " + i + @" </span> " ); 58 } 59 else 60 { 61 sb.Append( @" <a disabled=""disabled"" href=""javascript:page( " + i + @" )"" style=""margin-right:5px;""> " + i + @" </a> " ); 62 } 63 } 64 } 65 66 } 67 68 #endregion 69 } 70 71 #endregion
嗯第三步完成后就是结尾的部分了
View Code
1 #region 设置下一页 2 /* ---------------设置下一页-------------------- */ 3 if (page < allpage) 4 { 5 sb.Append( @" <a disabled=""disabled"" href=""javascript:page( " + next + @" )"" style=""margin-right:5px;"">下一页</a> " ); 6 } 7 else 8 { 9 sb.Append( @" <span class=""cpb"" style=""margin-right:5px;"">下一页</span> " ); 10 } 11 #endregion
好了暂时完成,等以后继续修改增加。这个只是有助本人不忘,没别的想法当然如果路过的园友有想法也可以给个意见或建议,或者互相关注大家互相学习共同进步哈
分类: C# , C#基础
标签: 分页效果 , 偏移量 , C#偏移量分页效果
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息