Pagination 分页类

 

public   class  Pagination
ExpandedBlockStart.gifContractedBlock.gif    
{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <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)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            StringBuilder str 
= new StringBuilder();
            
int leftMin, RightMax;
            
if (maxcount % 2 == 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                leftMin 
= curp - intplus(maxcount);
                RightMax 
= curp + intplus(maxcount) + 1;
            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                leftMin 
= curp - intplus(maxcount);
                RightMax 
= curp + intplus(maxcount);
            }

            
if (leftMin < 2)
                leftMin 
= 1;

            
if (RightMax > pagecount)
                RightMax 
= pagecount;
            
if (curp < intplus(maxcount) && pagecount >= maxcount)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                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++)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
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();
        }


ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <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)
ExpandedSubBlockStart.gifContractedSubBlock.gif       
{
           StringBuilder str 
= new StringBuilder();
           
int leftMin, RightMax;
           
if (maxcount % 2 == 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif           
{
               leftMin 
= curp - intplus(maxcount);
               RightMax 
= curp + intplus(maxcount) + 1;
           }

           
else
ExpandedSubBlockStart.gifContractedSubBlock.gif           
{
               leftMin 
= curp - intplus(maxcount);
               RightMax 
= curp + intplus(maxcount);
           }

           
if (leftMin < 2)
               leftMin 
= 1;

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

           
//左侧
           if (curp == 1)
               str.Append(
"<a class=\"pagenow\">上一页</a>");
           
else
ExpandedSubBlockStart.gifContractedSubBlock.gif           
{
               
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++)
ExpandedSubBlockStart.gifContractedSubBlock.gif           
{
               
if (i == curp)
                   str.Append(
"<a class=\"pagenow\">" + i.ToString() + "</a>");
               
else
ExpandedSubBlockStart.gifContractedSubBlock.gif               
{
                   
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();
       }


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

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

    }

 

转载于:https://www.cnblogs.com/cancer_xu/archive/2009/11/20/1607122.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值