好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

c#偏移量分页效果

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/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于c#偏移量分页效果的详细内容...

  阅读:47次