asp.Net自家製ページングバーコントロール


マイクロソフトのサーバーコントロールを使ったことがある人はみんな知っています~あのカードのAですね~
必要に応じて、ページ番号バーコントロールを自作したいと考えています.
行くぞ~
public static class PageShow
    {
        /// <summary>
        ///      
        /// </summary>
        /// <param name="requestHref">     </param>
        /// <param name="totalCount">     </param>
        /// <param name="currentPage">    </param>
        /// <param name="pageSize">    </param>
        /// <returns></returns>
        public static string Show(string requestHref, int totalCount, int currentPage, int pageSize)
        {
            //   pageSize totalPages
            pageSize = pageSize == 0 ? 6 : pageSize;//       6   
            var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//Math.Ceiling(totalCount / (pageSize / 1.0));//  Ceiling     ,      ,                 ,      , :  96   ,    6 ,     16
            var outPut = new StringBuilder();//       
            outPut.AppendFormat("<div class='pagination'>");//          
            //             ,         
            if (totalPages > 1)
            {
                //                  
                if (currentPage != 1)
                {
                    outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex=1&&pageSize={1}'>  </a>"
                                        , requestHref, pageSize);
                }
                //                   
                if (currentPage > 1)
                {
                    outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>   </a>"
                        , requestHref, currentPage - 1, pageSize);
                }
                //         
                else
                {
                    outPut.AppendFormat("<span class='disabled'>   </span>");
                }
                outPut.Append(" ");
                //        
                const int currint = 3;
                //   6    , 3  3 
                for (int i = 0; i < 6; i++)
                {
                    if (currentPage + i - currint >= 1 && currentPage + i - currint <= totalPages)
                    {
                        if (currint == i)
                        {
                            outPut.AppendFormat("<span class='disabled'>{0}</span>", currentPage + i - currint);
                        }
                        else
                        {
                            outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>{3}</a>"
                                , requestHref, currentPage + i - currint, pageSize, currentPage + i - currint);
                        }
                    }
                    outPut.Append(" ");
                }
                if (currentPage < totalPages)
                {
                    outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>   </a>"
                                    , requestHref, currentPage + 1, pageSize);
                }
                else
                {
                    outPut.AppendFormat("<span class='disabled'>   </span>");
                }
                outPut.Append(" ");
                if (currentPage != totalPages)
                {
                    outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>  </a>"
                                    , requestHref, totalPages, pageSize);
                }
                outPut.Append(" ");
            }
            outPut.AppendFormat(" {0} / {1} ", currentPage, totalPages);
            outPut.AppendFormat("</div>");
            return outPut.ToString();
        }
    }