一位CSDN網友放在下載裡的
/////////////////
/// <summary><br />/// 分頁函數<br />/// </summary><br />/// <param name="dtRecord">資料來源</param><br />private void SplitPage(DataTable dtRecord)<br />{<br />string htmlPage = "";<br />int pageSize = 15;//每頁顯示記錄數<br />int listStep = 10;//最多顯示分頁頁數<br />int pages = 1;//當前頁,預設顯示第一頁<br />int pageCount = 0;//定義總頁數<br />int recordCount = 0;//定義總記錄數<br />int listBegin = 0;//從第幾頁開始顯示分頁資訊<br />int listEnd = 0;//分頁資訊顯示到第幾頁</p><p>if (dtRecord == null || dtRecord.Rows.Count == 0)<br />{<br />return;<br />}<br />recordCount = dtRecord.Rows.Count;</p><p>//確定資料記錄要顯示的頁面數<br />if(recordCount > 0)<br />{<br />pageCount = recordCount / pageSize;<br />}<br />if(recordCount % pageSize > 0)<br />{<br />pageCount++;<br />}</p><p>//取得當前頁數值,並判斷<br />if(Request["pages"] != null)<br />{<br />pages = Convert.ToInt32(Request["pages"]);<br />}<br />if(pages < 1)<br />{<br />pages = 1;<br />}<br />if(pages > pageCount)<br />{<br />pages = pageCount;<br />}</p><p>listBegin = pages - listStep / 2; //從第幾頁開始顯示分頁資訊<br />if (listBegin < 1)<br />{<br />listBegin = 1;<br />}</p><p>listEnd = listBegin + listStep - 1; //分頁資訊顯示到第幾頁<br />if (listEnd > pageCount)<br />{<br />listEnd = pageCount;<br />listBegin = listEnd - listStep + 1;</p><p>if (listBegin < 1)<br />{<br />listBegin = 1;<br />}<br />}</p><p>//確認當前頁面的開始記錄和終止記錄<br />int recordBegin = pageSize * (pages - 1);<br />int recordEnd = recordBegin + pageSize - 1;<br />if(recordEnd > recordCount - 1)<br />{<br />recordEnd = recordCount - 1;<br />}</p><p>//顯示資料記錄<br />htmlPage = DisplayDataRecord(dtRecord, recordBegin, recordEnd);<br />Response.Write(htmlPage);<br />htmlPage = "";</p><p>//顯示分頁列表<br />htmlPage += GetPageList(pages, pageCount, listBegin, listEnd);<br />Response.Write(htmlPage);<br />htmlPage = "";<br />}<br />