分页实现

 public interface IGetList<T>
    {
        /// <summary>
        /// 返回一个集合
        /// </summary>
        /// <param name="pageindex">当前页</param>
        /// <param name="pagenumber">每页显示多少条</param>
        /// <param name="totle">总共多少条</param>
        /// <param name="dic">查询条件以字典放入</param>
        /// <returns></returns>
        List<T> GetList(int pageindex,int pagenumber,out int totle,Dictionary<string,string> dic);
    }
View Code
 protected int totle = 0;
        protected int pageindex = 1;
        protected int pagenumber = 20;
        protected double pagecount = 1;
        protected System.Text.StringBuilder sbpager = new System.Text.StringBuilder();
        protected List<People> lis = new List<People>();

        protected void Page_Load(object sender, EventArgs e)
        {

            InintPager();
          

        }


        /// <summary>
        /// 初始化分页条码
        /// </summary>
        protected void InintPager()
        {
            #region 查询条件
            Dictionary<string, string> dic = new Dictionary<string, string>(); 
            #endregion

            string linkstr = "index.aspx?&pageindex=";

            #region 产生分页条码
            int totle = 0;

            int pageindex = 1;

            if (!int.TryParse(Request["pageindex"], out pageindex))
            {

                pageindex = 1;

            }
            int pagenumber = 20;

            IGetList<People> bll = new Pagerok.BLL();

            lis = bll.GetList(pageindex, pagenumber, out  totle,dic);

            pagecount = Math.Ceiling(totle * 1.0 / pagenumber);

            sbpager.Append(" <a href='#'>共" + pagecount + "页</a>");

            #region MyRegion
            sbpager.Append("<a href='"+linkstr + 1 + "'>首页</a> ");


            if (pageindex != 1)
            {
                sbpager.Append("<a href='"+linkstr + (pageindex - 1) + "'>上一页</a> ");
            }
            
            #endregion


            if (pagecount <= 10)
            {

                #region MyRegion
                for (int i = 0; i < pagecount; i++)
                {
                    if ((i + 1) == pageindex)
                    {
                        sbpager.Append("<a class='current' href='#'>" + (i + 1) + " </a>");
                    }
                    else
                    {
                        sbpager.Append("<a href='"+linkstr + (i + 1) + "'>" + (i + 1) + " </a>");
                    }

                }
                #endregion

            }
            else if (pageindex < 5)
            {

                #region MyRegion
                for (int i = 0; i < 10; i++)
                {
                    if ((i + 1) == pageindex)
                    {
                        sbpager.Append("<a class='current' href='#'>" + (i + 1) + " </a>");
                    }
                    else
                    {
                        sbpager.Append("<a href='" + linkstr + (i + 1) + "'>" + (i + 1) + " </a>");
                    }

                }
                #endregion

            }
            else if (pageindex > pagecount - 5)
            {

                #region MyRegion
                int t = int.Parse(pagecount.ToString()) - 10;

                for (int i = t; i < pagecount; i++)
                {
                    if ((i + 1) == pageindex)
                    {
                        sbpager.Append("<a class='current' href='#'>" + (i + 1) + " </a>");
                    }
                    else
                    {
                        sbpager.Append("<a href='" + linkstr + (i + 1) + "'>" + (i + 1) + " </a>");
                    }
                } 
                #endregion
            }
            else
            {

                #region MyRegion
                int t1 = pageindex - 5;
                int t2 = pageindex + 4;

                for (int i = t1; i < t2; i++)
                {
                    if ((i + 1) == pageindex)
                    {
                        sbpager.Append("<a class='current' href='#'>" + (i + 1) + " </a>");
                    }
                    else
                    {
                        sbpager.Append("<a href='" + linkstr + (i + 1) + "'>" + (i + 1) + " </a>");
                    }
                } 
                #endregion

            }


            #region MyRegion
            if (pageindex != pagecount)
            {
                sbpager.Append("<a href='" + linkstr + (pageindex + 1) + "'>下一页</a> ");
            } 
            #endregion


            sbpager.Append("<a href=" + linkstr + pagecount + ">尾页</a>");
            #endregion
        
        }
View Code

 

posted @ 2016-04-21 22:51  蒙面侠  阅读(121)  评论(0编辑  收藏  举报