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();
        }
結果生成類似於這樣的字符串:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章