zoukankan      html  css  js  c++  java
  • Pagination 分页类

    public class Pagination
        
    {
            
    /// <summary>
            
    /// 页码显示
            
    /// </summary>
            
    /// <param name="curp">当前页</param>
            
    /// <param name="pagecount">总页数</param>
            
    /// <param name="maxcount">最大显示页码行数</param>
            
    /// <param name="leftstr">目标URL地址页码标记左边字符串</param>
            
    /// <param name="rightstr">目标URL地址页码标记右边字符串</param>
            
    /// <returns>页码字符串</returns>

            public static string Show(int curp, int pagecount, int maxcount, string leftstr, string rightstr)
            
    {
                StringBuilder str 
    = new StringBuilder();
                
    int leftMin, RightMax;
                
    if (maxcount % 2 == 0)
                
    {
                    leftMin 
    = curp - intplus(maxcount);
                    RightMax 
    = curp + intplus(maxcount) + 1;
                }

                
    else
                
    {
                    leftMin 
    = curp - intplus(maxcount);
                    RightMax 
    = curp + intplus(maxcount);
                }

                
    if (leftMin < 2)
                    leftMin 
    = 1;

                
    if (RightMax > pagecount)
                    RightMax 
    = pagecount;
                
    if (curp < intplus(maxcount) && pagecount >= maxcount)
                
    {
                    leftMin 
    = 1;
                    RightMax 
    = maxcount;
                }

                
    if (leftMin > 2)
                    str.Append(
    "<a class=\"page\" href=\"" + leftstr + "1" + rightstr + "\"  title=\"第1页\">1</a><a class=\"around\" href=\"" + leftstr + (curp - 1).ToString() + rightstr + "\" title=\"上一页\">&lt;&lt</a>");
                
    if (leftMin == 2)
                    str.Append(
    "<a class=\"page\" href=\"" + leftstr + "1" + rightstr + "\"  title=\"第1页\">1</a>");

                
    for (int i = leftMin; i <= RightMax; i++)
                
    {
                    
    if (i == curp)
                        str.Append(
    "<a class=\"pagenow\">" + i.ToString() + "</a>");
                    
    else
                        str.Append(
    "<a  class=\"page\" href=\"" + leftstr + i.ToString() + rightstr + "\"  title=\"" + i.ToString() + "页\">" + i.ToString() + "</a>");
                }

                
    if (RightMax < pagecount - 1)
                    str.Append(
    "<a class=\"around\" href=\"" + leftstr + (curp + 1).ToString() + rightstr + "\" title=\"下一页\">&gt;&gt;</a><a  class=\"page\" href=\"" + leftstr + pagecount.ToString() + rightstr + "\"  title=\"" + pagecount.ToString() + "页\">" + pagecount.ToString() + "</a>");
                
    if (RightMax == pagecount - 1)
                    str.Append(
    "<a  class=\"page\" href=\"" + leftstr + pagecount.ToString() + rightstr + "\"  title=\"" + pagecount.ToString() + "页\">" + pagecount.ToString() + "</a>");
                
    return str.ToString();
            }


            
    /// <summary>
            
    /// show page numbers: for long article.
            
    /// </summary>
            
    /// <param name="curp">当前页</param>
            
    /// <param name="pagecount">总页数</param>
            
    /// <param name="maxcount">最大显示页码行数</param>
            
    /// <param name="leftstr">目标URL地址页码标记左边字符串</param>
            
    /// <param name="rightstr">目标URL地址页码标记右边字符串</param>
            
    /// <returns>页码字符串</returns>

           public static string Show2(int curp, int pagecount, int maxcount, string leftstr, string rightstr)
           
    {
               StringBuilder str 
    = new StringBuilder();
               
    int leftMin, RightMax;
               
    if (maxcount % 2 == 0)
               
    {
                   leftMin 
    = curp - intplus(maxcount);
                   RightMax 
    = curp + intplus(maxcount) + 1;
               }

               
    else
               
    {
                   leftMin 
    = curp - intplus(maxcount);
                   RightMax 
    = curp + intplus(maxcount);
               }

               
    if (leftMin < 2)
                   leftMin 
    = 1;

               
    if (RightMax > pagecount)
                   RightMax 
    = pagecount;
               
    if (curp < intplus(maxcount) && pagecount >= maxcount)
               
    {
                   leftMin 
    = 1;
                   RightMax 
    = maxcount;
               }

               
    //左侧
               if (curp == 1)
                   str.Append(
    "<a class=\"pagenow\">上一页</a>");
               
    else
               
    {
                   
    if (curp > 2)
                       str.Append(
    "<a href=\"" + leftstr + "-" + (curp - 1) + rightstr + "\" class=\"page\">上一页</a>");
                   
    else
                       str.Append(
    "<a href=\"" + leftstr + rightstr + "\" class=\"page\">上一页</a>");
               }

               
    if (leftMin > 2)
                   str.Append(
    "<a class=\"page\" href=\"" + leftstr + rightstr + "\"  title=\"第1页\">1</a><a class=\"around\" href=\"" + leftstr + "-" + (curp - 1).ToString() + rightstr + "\" title=\"上一页\">&lsaquo;&lsaquo;</a>");
               
    if (leftMin == 2)
                   str.Append(
    "<a class=\"page\" href=\"" + leftstr + rightstr + "\"  title=\"第1页\">1</a>");
               
    //中间
               for (int i = leftMin; i <= RightMax; i++)
               
    {
                   
    if (i == curp)
                       str.Append(
    "<a class=\"pagenow\">" + i.ToString() + "</a>");
                   
    else
                   
    {
                       
    if(i > 1)
                       str.Append(
    "<a  class=\"page\" href=\"" + leftstr + "-" + i.ToString() + rightstr + "\"  title=\"" + i.ToString() + "页\">" + i.ToString() + "</a>");
                       
    else
                       str.Append(
    "<a  class=\"page\" href=\"" + leftstr + rightstr + "\"  title=\"" + i.ToString() + "页\">" + i.ToString() + "</a>");
                   }

               }

               
    //右侧
               if (RightMax < pagecount - 1)
                   str.Append(
    "<a class=\"around\" href=\"" + leftstr + "-" +(curp + 1).ToString() + rightstr + "\" title=\"下一页\">&rsaquo;&rsaquo;</a><a  class=\"page\" href=\"" + leftstr + "-" +pagecount.ToString() + rightstr + "\"  title=\"" + pagecount.ToString() + "页\">" + pagecount.ToString() + "</a>");
               
    if (RightMax == pagecount - 1)
                   str.Append(
    "<a  class=\"page\" href=\"" + leftstr +"-" + pagecount.ToString() + rightstr + "\"  title=\"" + pagecount.ToString() + "页\">" + pagecount.ToString() + "</a>");
               
    if (curp == pagecount)
                   str.Append(
    "<a class=\"pagenow\">下一页</a>");
               
    else
                   str.Append(
    "<a href=\"" + leftstr + "-" + (curp + 1) + rightstr + "\" class=\"page\">下一页</a>");
               
    return str.ToString();
           }


            
    /// <summary>
            
    /// 取得数除以2得数的整数部份
            
    /// </summary>
            
    /// <param name="i">被2除的整数</param>
            
    /// <returns></returns>

            public static int intplus(int i)
            
    {
                
    if (i % 2 == 0)
                    
    return i / 2;
                
    else
                    
    return (i - 1/ 2;
            }

        }
  • 相关阅读:
    Animation Curve运动曲线
    Unity3D Collider类的信息传输Ontrigger*与OnCollision*
    springmvc拦截器的简单了解
    JDK中的注解简单了解
    面试加分项---HashMap底层实现原理
    springmvc参数绑定
    springmvc和struts2的区别
    修改tomcat的编码方式,可以解决某些get请求乱码问题
    springmvc 怎么响应json数据
    权限控制框架---shiro入门
  • 原文地址:https://www.cnblogs.com/cancer_xu/p/1607122.html
Copyright © 2011-2022 走看看