Pager 精简的分页控件

建立一个用户控件:Pager.ascx,然后后台代码为:

 

  public partial class Pager : System.Web.UI.UserControl
    {
        private string _UrlFormat;
        private int _PageSize = 10;
        private int _RecordCount;
        private int _PageCount = 5;
 
        /** <summary>
        /// 连接格式
        /// </summary>
        public string UrlFormat
        {
            get
            {
                return _UrlFormat;
            }
            set
            {
                _UrlFormat = value;
            }
        }
 
        /** <summary>
        /// 页长度
 
 
        /// </summary>
        public int PageSize
        {
            get
            {
                return _PageSize;
            }
            set
            {
                _PageSize = value;
            }
        }
 
        /** <summary>
        /// 当前页码
        /// </summary>
        public int PageIndex
        {
            get
            {
                string Pageindex = HttpContext.Current.Request.QueryString["i"];
                if (Pageindex != null)
                {
                    return int.Parse(Pageindex);
                }
                return 1;
            }
        }
 
        /** <summary>
        /// 总记录数
        /// </summary>
        public int RecordCount
        {
            get
            {
                return _RecordCount;
            }
            set
            {
                _RecordCount = value;
            }
        }
 
        /** <summary>
        /// 两边显示个数
        /// </summary>
        public int PageCount
        {
            get
            {
                return _PageCount;
            }
            set
            {
                _PageCount = value;
            }
        }
 
        protected override void Render(HtmlTextWriter writer)
        {
            if (RecordCount == 0)
                return;
            int SumPage = (RecordCount + PageSize - 1) / PageSize;
 
            int start = PageIndex - PageCount;
            int end = PageIndex + PageCount;
 
            //以PageIndex为中心,前后个显示Page个页码导航
 
 
            if (SumPage > (PageCount * 2 + 1))
            {
               if (start < 1)
               {
                   start = 1;
                   end = start + 10;
               }
               else if (end > SumPage)
               {
                   start = SumPage - 10;
                   end = SumPage;
               }
           }
           else
           {
               start = 1;
               end = SumPage;
           }

 

           string tmp = "<a href=\"" + UrlFormat + "\">[{0}]</a>";
           StringBuilder sb = new StringBuilder(string.Format("页次:{0}/{1}  每页:{2}  共计:{3} 条 ", PageIndex, SumPage, PageSize, RecordCount));
            if (PageIndex > 1)
            {
                sb.Append(string.Format("<a href=\"" + UrlFormat + "\">首页</a> ", 1));
                sb.Append(string.Format(" <a href=\"" + UrlFormat + "\">上一页</a> ", PageIndex - 1));
            }
            for (int i = start; i <= end; i++)
            {
                if (i == PageIndex)
                {
                    sb.Append(" <strong>" + PageIndex.ToString() + "</strong> ");
                }
                else
                {
                    sb.Append(string.Format(tmp, i));
                }
                sb.Append("&nbsp;");
            }
            if (PageIndex < SumPage)
            {
                sb.Append(string.Format(" <a href=\"" + UrlFormat + "\">下一页</a> ", PageIndex + 1));
                sb.Append(string.Format(" <a href=\"" + UrlFormat + "\">尾页</a>", SumPage));
            }
            writer.Write(sb.ToString());
        }
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }

 

 

使用方法:

把Pager拖拽到页面上,进入页面后台代码,设置如下:

 

 
 
Pager1.UrlFormat = " ?i={0} " ; // 分页格式
int recordcount, pagecount;
Repeater1.DataSource = 数据源;
Repeater1.DataBind();
Pager1.RecordCount = recordcount;

转载于:https://www.cnblogs.com/jackrebel/archive/2008/09/07/1286188.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值