ASP.NET实用分页代码

        /// <summary>
        /// 获得页数
        /// </summary>
        /// <param name="DataItemCount">总共的数据条数</param>
        /// <param name="PageSize">每页的数据条数</param>
        /// <returns>返回页数</returns>
        public static int GetPageCount(int DataItemCount, int PageSize)
        {
            int PageCount;
            PageCount = (DataItemCount % PageSize == 0) ? DataItemCount / PageSize : DataItemCount / PageSize+1;
            return PageCount;
        }
        /// <summary>
        /// 分页方法1
        /// </summary>
        /// <param name="CurrentPage">当前页</param>
        /// <param name="DataItemCount">信息总条数(比如文章数量)</param>
        /// <param name="LinksCount">每页显示的链接数</param>
        /// <returns>返回字符串</returns>
        public static string PagingMethod1(int CurrentPage, int DataItemCount,int PageSize, int LinksCount,string Adds)
        {
            int PageCount = GetPageCount(DataItemCount, PageSize);
            if (CurrentPage <= 0)
            {
                CurrentPage = 1;

            }
            else if (CurrentPage > PageCount)
            {
                CurrentPage = PageCount;
            }

            //minpage 和maxpage值的判断


            if (PageCount <= LinksCount) //当 页数大于每页显示的连接数时
            {
                MinPage = 1;
                MaxPage = PageCount;
            }

            else if (PageCount > LinksCount) //当页数小于每页显示的连接数时
            {
                if (CurrentPage < LinksCount / 2)
                {
                    MaxPage = LinksCount;
                    if ((CurrentPage - LinksCount / 2) < 1)
                    {
                        MinPage = 1;

                    }
                    else
                    {
                        MinPage = CurrentPage - LinksCount / 2;

                    }

                }
                else
                {
                    MinPage = CurrentPage - LinksCount / 2 + 1;
                    if ((CurrentPage + (LinksCount / 2)) > PageCount)
                        MaxPage = PageCount;
                    else
                        MaxPage = CurrentPage + LinksCount / 2;

                }

            }

            StringBuilder Link = new StringBuilder();
            if (MinPage > 1)//如果链接字符串里没有"首页"的时候
                Link.Append("<a href=\"?CurrentPage=1"+Adds+"\">1...</a> ");
           

            for (int i = MinPage; i <= MaxPage; i++)
            {
                if (i == CurrentPage)
                    Link.Append("<a href=\"?CurrentPage=" + i.ToString() +Adds+ "\">[" + i.ToString() + "]</a> ");
                else
                    Link.Append("<a href=\"?CurrentPage=" + i.ToString() + Adds+"\">" + i.ToString() + "</a> ");
            }
            if (MaxPage < PageCount)//如果链接字符串里没有"最后一页"的时候
                Link.Append("<a href=\"?CurrentPage=" + PageCount.ToString() + Adds + "\">..."+ PageCount.ToString()+"</a> ");
            return Link.ToString();
        }
结果生成类似于这样的字符串:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章