C#分頁 訪google
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text; /// <summary> /// Pagenumber 的摘要說明 /// </summary> public static class Pagenumber { /// <summary> /// 建立並顯示分頁器 /// </summary> public static string BuildPager(int totalRecords, int currentPage, int pageSize, int pid) { int alter = 4; int startPage = 1; int endPage = currentPage + alter; int totalPages = CalculateTotalPages(totalRecords, pageSize); if (currentPage > alter) { startPage = currentPage - alter; } if (endPage > totalPages) { endPage = totalPages; } string strTemp = @" <a href='Default.aspx?p={0}&pno={1}'>{2}</a> "; StringBuilder sb = new StringBuilder(""); if (currentPage != startPage) { sb.Append(string.Format(strTemp, currentPage - 1, currentPage - 1, " 上一頁 ")); } for (int i = startPage; i <= endPage; i++) { if (currentPage == i) { sb.Append(" <font color=red> " + i + " </font> "); } else { sb.Append(string.Format(strTemp, i, i, "[" + i + "]")); } } if (currentPage != endPage) { sb.Append(string.Format(strTemp, currentPage + 1, currentPage + 1, " 下一頁 ")); } return sb.ToString(); } /**/ /// <summary> /// 計算總頁數 /// </summary> /// <param name="totalRecords"> 總記錄數 </param> /// <param name="pageSize"> 每頁記錄數 </param> public static int CalculateTotalPages(int totalRecords, int pageSize) { int totalPagesAvailable; totalPagesAvailable = totalRecords / pageSize; // 由於C#的整形除法 會把所有餘數舍入為0,所以需要判斷是否需要加1 if ((totalRecords % pageSize) > 0) totalPagesAvailable++; return totalPagesAvailable; } } Demo2: C#程式碼 /**//// <summary> /// 類似GOOGLE的分頁函式,王傳煒,資料參考http://www.phpx.com/happy/viewthread.php?tid=99280&extra=&page=2,謝謝YourEyes /// </summary> /// <param name="total">總記錄數</param> /// <param name="per">每頁記錄數</param> /// <param name="page">當前頁數</param> /// <param name="query_string">Url引數</param> private string pagination(int total,int per,int page,string query_string) { int allpage=0; int next=0; int pre=0; int startcount=0; int endcount=0; string pagestr=""; if(page<1){page=1;} //計算總頁數 if (per != 0) { allpage = (total / per); allpage = ((total % per) != 0 ? allpage + 1 : allpage); allpage = (allpage == 0 ? 1 : allpage); } next=page+1; pre=page-1; startcount=(page+5)>allpage?allpage-9:page-4;//中間頁起始序號 //中間頁終止序號 endcount = page<5 ? 10 : page+5; if(startcount<1) {startcount=1;} //為了避免輸出的時候產生負數,設定如果小於1就從序號1開始 if(allpage<endcount){endcount=allpage;}//頁碼+5的可能性就會產生最終輸出序號大於總頁碼,那麼就要將其控制在頁碼數之內 pagestr="共"+ allpage +"頁 "; pagestr+=page>1 ? "<a href=\""+ query_string + "?page=1\">首頁</a> <a href=\""+ query_string +"?page="+ pre +"\">上一頁</a>": "首頁 上一頁"; //中間頁處理,這個增加時間複雜度,減小空間複雜度 for(int i=startcount;i<=endcount;i++) { pagestr+=page==i?" <font color=\"#ff0000\">"+i+"</font>":" <a href=\""+ query_string +"?page="+ i +"\">"+ i +"</a>"; } pagestr+=page!=allpage ? " <a href=\""+ query_string+"?page="+ next +"\">下一頁</a> <a href=\""+ query_string +"?page="+ allpage+"\">末頁</a>" : " 下一頁 末頁"; return pagestr; }
相關文章
- C# GridView 分頁顯示C#View
- c# winform 實現分頁查詢C#ORM
- Google搜尋為什麼不能無限分頁?Go
- .Net/C#分庫分表高效能O(1)瀑布流分頁C#
- 完整的分頁儲存過程以及c#呼叫方法儲存過程C#
- mysql分頁-limit offset分頁MySqlMIT
- 【Node | LightHouse】Google LightHouse 網頁跑分 | 不服?你也跑一個!?Go網頁
- [Node | LightHouse] Google LightHouse 網頁跑分 | 不服?你也跑一個!?Go網頁
- Google 面試題 | 分餅乾Go面試題
- 分頁總頁數計算方法 所有分頁通用
- flask 分頁 | 翻頁Flask
- JAVASCRIPT C# 相互訪問JavaScriptC#
- 用C#訪問HotmailC#AI
- php 分頁 分頁類 簡單實用PHP
- Flask——分頁Flask
- php 分頁PHP
- django分頁Django
- js分頁JS
- jeeSite分頁
- oracle分頁Oracle
- 分頁元件元件
- Rails分頁AI
- 分頁器
- 刪除google網頁快照方法Go網頁
- Google+抄襲Facebook頁面?Go
- django 自定義分頁與bootstrap分頁結合Djangoboot
- c#屬性訪問器C#
- C#訪問MySql原始版C#MySql
- 儲存過程分頁 Ado.Net分頁 EF分頁 滿足90%以上儲存過程
- 1152 Google Recruitment (20分)GoUI
- 匯入網頁資料到 Google Sheet網頁Go
- 日誌、分頁
- php分頁類PHP
- Django的分頁Django
- 分頁機制
- 系統分頁
- MyBatis 3 分頁MyBatis
- web分頁教程Web