類似baidu google分頁頁碼效果的代碼

以後做圖片網站用過,現在只寫出代碼,其實沒什麼技術含量,只是最近工作不順,心情稍差,思維有點懶惰,工作的時候需要抄過來用用OK,所才Post在此.  
        /**//// <summary>
        
/// 創建並顯示分頁器
        
/// </summary>

        private void BuildPager(int totalRecords,int currentPage,int pageSize,int pid)
        
{
            
int alter = 4
 ;
            
int startPage = 1
 ;
            
int endPage = currentPage +
 alter ;
            
int totalPages = this
.CalculateTotalPages(totalRecords,pageSize) ;

            
if(currentPage >
 alter)
            
{
                startPage 
= currentPage -
 alter ;
            }


            
if(endPage > totalPages)
            
{
                endPage 
=
 totalPages ;
            }


            
string strTemp = @"<a href='PhotoList.aspx?pid={0}&pno={1}'>{2}</a>&nbsp;&nbsp;" ;
            StringBuilder sb 
= new StringBuilder(""
) ;
            
if(currentPage !=
 startPage)
            
{
                sb.Append( 
string.Format( strTemp , pid , 1 , "上一頁"
 ) ) ;
            }


            
forint i = startPage ; i <= endPage ; i++ )
            
{
                
if( currentPage ==
 i )
                
{
                    sb.Append(
"<font color=red>" + i + "</font>&nbsp;&nbsp;"
) ;
                }

                
else
                
{
                    sb.Append( 
string.Format( strTemp , pid , i ,"[" + i + "]"
 ) ) ;
                }

            }


            
if(currentPage != endPage)
            
{
                sb.Append( 
string.Format( strTemp , pid , currentPage + 1 , "下一頁"
) ) ;
            }


            
this.ltlShowPager.Text = sb.ToString() ;
        }


        
/**//// <summary>
        
/// 計算總頁數
        
/// </summary>

        
/// <param name="totalRecords">總記錄數</param>
        
/// <param name="pageSize">每頁記錄數</param>

        private int CalculateTotalPages(int totalRecords, int pageSize) 
        
{
            
int
 totalPagesAvailable;

            totalPagesAvailable 
= totalRecords /
 pageSize;

            
//由於C#的整形除法 會把所有餘數舍入爲0,所以需要判斷是否需要加1

            if ((totalRecords % pageSize) > 0)
                totalPagesAvailable
++
;

            
return
 totalPagesAvailable;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章