Asp.Net分页控件
生活随笔
收集整理的這篇文章主要介紹了
Asp.Net分页控件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/// <summary>/// 分頁方法/// </summary>/// <param name="pageIndex">當前頁碼</param>/// <param name="totalCount">總條數</param>/// <param name="pageSize">一頁多少條</param>/// /// <param name="url">頁面地址</param>/// <param name="pageLength">顯示多少頁碼</param>/// <returns></returns>public static string Page(int pageIndex,int totalCount,int pageSize, string url,int pageLength=5){if (totalCount<=0){return "";}//保證在編寫下一頁的代碼定向時不會受到中間for循環的干擾使pageIndex的值發生改變int redirectPageIndex = pageIndex;//pageSize不可為0if (pageSize==0){pageSize = totalCount;}//獲得當前可分頁的頁數數量int pageCount = totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1);//創建用來拼接字符串的對象StringBuilder sb = new StringBuilder();//處理首頁if (pageIndex!=1){//當前傳遞進來的頁碼不是第1頁,則顯示首頁和上一頁sb.Append(string.Format("<a href={0}?pageIndex={1}&pageSize={2}>首頁</a><a href={0}?pageIndex={3}&pageSize={2}>上一頁</a>", url,1, pageSize,pageIndex-1));}//保存顯示的頁碼數量int length;//處理中間的頁碼if (pageLength >= pageCount || pageLength <= 0){//如果需要分成的頁碼數量比可分成的大length = pageCount;}else{length = pageLength;}//方便計算當前應該轉折的pageIndex的值int t = pageIndex /length;int p = pageIndex % length;//這里給pageIndex重定向int l = pageCount - length + 1;//當前已經到了最后的轉折點if (pageIndex>=l){pageIndex = l;}else{//還未到if (p==0&&t==1){//這里說明在第一個轉折點pageIndex = 1;}else{//不在第一個if (p==0){//這是在轉折點的時候pageIndex = (t - 1) * length + 1;}else{pageIndex = t * length + 1;}}}//如果當前頁碼為最后一頁if (pageIndex>=pageCount){//則讓pageIndex回復到之前pageIndex = pageIndex - length+1; // + 1;}//處理頁碼for (int i = 0; i < length; i++){sb.Append(string.Format("<a href={0}?pageIndex={1}&pageSize={2}>{1}</a>",url, pageIndex, pageSize));pageIndex++;//temp++;}//處理下一頁與末頁if (redirectPageIndex < pageCount){//當前傳遞進來的頁碼不是最后頁,則顯示末頁和下一頁sb.Append(string.Format("<a href={0}?pageIndex={1}&pageSize={2}>下一頁</a><a href={0}?pageIndex={3}&pageSize={2}>末頁</a>",url, redirectPageIndex + 1, pageSize,pageCount));}sb.Append(string.Format("<span class='info'>第{0}頁/共{1}頁</span>", redirectPageIndex, pageCount));return sb.ToString();}
自己寫的,不足不怪
調用方法:
?
前臺傳遞
pageIndex:前臺當前要顯示的頁碼/當前被點擊的頁碼,例如1
pageSize:前臺當前要顯示的數據數量,例如10
totalCount:所有數據的總條數,例如后臺獲取到100條
url:參數將要被傳遞到哪個頁面/后臺程序內,例如"a.aspx",則會生成<a href="a.aspx?pageIndex=1&pageSize=10">1</a>,也可不傳(例如用在ajax異步無刷新分頁時,但要自己手動處理分頁中a標簽的href屬性,從中提取出pageIndex=1&pageSize=10)
pageLength:當前頁中想要顯示的頁碼數量,默認為5,例如當前數據庫中的數據每次在前臺展示10條,可以生成一共12個頁碼,傳入pageLength為5后,則每次只會在頁面上顯示5個頁碼.
?
轉載于:https://www.cnblogs.com/rbzz/p/8438639.html
總結
以上是生活随笔為你收集整理的Asp.Net分页控件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断IE浏览器的版本号
- 下一篇: WPF richTextBox 滚动到某