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://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息