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