C#一个显示分页页码类

using System;

namespace bookshopcn.Service
{
/// <summary>
/// Page 的摘要说明。
/// </summary>
public class Pager
{
   public Pager(){}

   protected static int _ButtonCount = 11;
   protected static string _NextPage = "<a href={0}>下一页</a>";
   protected static string _LinkUrl = "?page={0}";
   protected static string _LastPage = "<a href={0}>上一页</a>";

   /// <summary>
   /// 下一页链接
   /// </summary>
   public static string NextPage
   {
    get{return _NextPage;}
    set{_NextPage = value;}
   }

   /// <summary>
   /// 上一页链接
   /// </summary>
   public static string LastPage
   {
    get{return _LastPage;}
    set{_LastPage = value;}
   }

   /// <summary>
   /// 设置时为格式
   /// </summary>
   public static string NextPageText
   {
    get{return _NextPage;}
    set{_NextPage = value;}
   }

   /// <summary>
   /// 显示按钮总数
   /// </summary>
   public static int BottonCount
   {
    get{return _ButtonCount;}
    set{_ButtonCount = value;}
   }
   /// <summary>
   /// 返回页面的分页信息
   /// </summary>
   /// <param name="_RecordCount">记录总数</param>
   /// <param name="_PageSize">分页长度</param>
   /// <param name="_PageIndex">当前页</param>
   /// <returns></returns>
   public static string PageInfo(int _RecordCount,int _PageSize,int _PageIndex,string link)
   {  
    string Firstpage = string.Format("<a href="+link+">[首页]</a>","1");
    string pageinfo = "共有{0}页 / 当前第{1}页 "+Firstpage;
    string pagenext = " <a href="+link+"><b>{0}</b></a> ";
    int PageCount = _RecordCount / _PageSize; // 页数合计
    PageCount = PageCount <= 0?1:PageCount;
    pageinfo = string.Format(pageinfo,PageCount.ToString(),_PageIndex.ToString());
    string LastPage = string.Format("<a href="+link+">[末页]</a>",PageCount);

    int n = _ButtonCount/2;   //左右显示个数
    int StartPage = _PageIndex - n;
    int EndPage = _PageIndex + n;
    _LastPage = string.Format(_LastPage,link);   //上一页
    _LastPage = _PageIndex-1>1?string.Format(_LastPage,(_PageIndex-1).ToString()):string.Format(_NextPage,"1");

    _NextPage = string.Format(_NextPage,link); //下一页
    _NextPage = _PageIndex+1<=PageCount?string.Format(_NextPage,_PageIndex.ToString()):string.Format(_NextPage,PageCount.ToString());

    if(EndPage > PageCount )
    {
     StartPage = (_PageIndex - n) - (EndPage-PageCount);
     EndPage = PageCount ;
    }
    if(StartPage < 1 )
    {
     EndPage = _ButtonCount;
     StartPage = 1 ;
    }

    for(int i = StartPage;i<=EndPage;i++)
    {
     if(i != _PageIndex)
      pageinfo += string.Format(pagenext,i);
     else
      pageinfo += " <b>" + i.ToString() + "</b> ";
    }
    pageinfo += LastPage;
    return pageinfo;
   }
}


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值