自己写的分页函数
using System;
using System.Collections.Generic;
using System.Text;
namespace Store.Common
{
??? public class Pager
??? {
??????? #region 生成分頁控件
??????? /// <summary>
??????? /// 獲取分頁碼
??????? /// </summary>
??????? /// <param name="PageUrl">當前請求的原始url,有時候會用到傳有參數的頁,下一步開始開發適合所有的頁面分頁</param>
??????? /// <param name="TotalCountRecord">需要顯示的總記錄數</param>
??????? /// <param name="PageItem">每頁需要顯示的記錄數</param>
??????? /// <param name="CurrentPage">當前頁碼</param>
??????? /// <param name="Pagenums">界面需要顯示多少頁碼</param>
??????? /// <returns>返回顯示在頁面上的分頁控件</returns>
??????? /// 說明:用戶可以根據自己的需要為頁碼間添加分隔符,可以控制選中頁的頁碼樣式
??????? /// 創建者:蔡萬國
??????? /// 修改時間;2007-9-30
??????? public StringBuilder MyPage(string PageUrl, int TotalCountRecord, int PageItem, int CurrentPage, int Pagenums)
??????? {
??????????? //偏移量
??????????? int LeftNum = (int)Math.Ceiling((double)(Pagenums) / 2);
??????????? int Step = LeftNum + 1;
??????????? int RightNum = Pagenums - LeftNum - 1;
??????????? //string PageUrl = Request.FilePath;
??????????? //一共有多少頁
??????????? int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageItem);
??????????? StringBuilder OutPut = new StringBuilder();
??????????? //選中的頁大于1就顯示上一頁
??????????? //if (CurrentPage > 1)
??????????? //{
??????????? //??? OutPut.Append("<a href='");
??????????? //??? OutPut.Append(PageUrl);
??????????? //??? OutPut.Append("&&page=");
??????????? //??? OutPut.Append(CurrentPage - 1);
??????????? //??? OutPut.Append("'>上一頁</a>");
??????????? //}
??????????? //如果頁數小于10就只輸出當前的10以內的標號
??????????? if (PageCount < Pagenums)
??????????? {
??????????????? for (int i = 1; i <= PageCount; i++)
??????????????? {
??????????????????? if (i == CurrentPage)
??????????????????? {
??????????????????????? //OutPut.Append("<font>");//控制控制選中頁的頁碼樣式
??????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????? OutPut.Append(i.ToString());
??????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????? //OutPut.Append("</font>");//控制控制選中頁的頁碼樣式
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? OutPut.Append("<a href='");
??????????????????????? OutPut.Append(PageUrl);
??????????????????????? OutPut.Append("&page=");
??????????????????????? OutPut.Append(i.ToString());
??????????????????????? OutPut.Append("'>");
??????????????????????? //OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????? OutPut.Append(i.ToString());
??????????????????????? //OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????? OutPut.Append("</a>");
??????????????????? }
??????????????? }
??????????? }
??????????? //大于10就得加上省略號
??????????? else
??????????? {
??????????????? if (CurrentPage + RightNum < PageCount)//當不超過的時候
??????????????? {
??????????????????? if (CurrentPage - Step < 1)
??????????????????? {
??????????????????????? for (int i = 1; i <= Pagenums; i++)
??????????????????????? {
??????????????????????????? if (i == CurrentPage)
??????????????????????????? {
??????????????????????????????? //OutPut.Append("<font>");//控制控制選中頁的頁碼樣式
??????????????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????????????? OutPut.Append(i.ToString());
??????????????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????????????? //OutPut.Append("</font>");//控制控制選中頁的頁碼樣式
??????????????????????????? }
??????????????????????????? else
??????????????????????????? {
??????????????????????????????? OutPut.Append("<a href='");
??????????????????????????????? OutPut.Append(PageUrl);
??????????????????????????????? OutPut.Append("&page=");
??????????????????????????????? OutPut.Append(i.ToString());
??????????????????????????????? OutPut.Append("'>");
??????????????????????????????? //OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????????????? OutPut.Append(i.ToString());
??????????????????????????????? //OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????????????? OutPut.Append("</a>");
??????????????????????????? }
??????????????????????? }
??????????????????????? if (PageCount > Pagenums)
??????????????????????? {
??????????????????????????? OutPut.Append("...");
??????????????????????? }
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? for (int i = CurrentPage - LeftNum; i <= CurrentPage + RightNum; i++)
??????????????????????? {
??????????????????????????? if (i == CurrentPage)
??????????????????????????? {
??????????????????????????????? //OutPut.Append("<font>");//控制控制選中頁的頁碼樣式
??????????????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????????????? OutPut.Append(i.ToString());
??????????????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????????????? //OutPut.Append("</font>");//控制控制選中頁的頁碼樣式
??????????????????????????? }
??????????????????????????? else
??????????????????????????? {
??????????????????????????????? OutPut.Append("<a href='");
??????????????????????????????? OutPut.Append(PageUrl);
??????????????????????????????? OutPut.Append("&page=");
??????????????????????????????? OutPut.Append(i.ToString());
??????????????????????????????? OutPut.Append("'>");
??????????????????????????????? //OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????????????? OutPut.Append(i.ToString());
??????????????????????????????? //OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????????????? OutPut.Append("</a>");
??????????????????????????? }
??????????????????????? }
??????????????????????? if (CurrentPage + RightNum < PageCount)
??????????????????????? {
??????????????????????????? OutPut.Append("...");
??????????????????????? }
??????????????????? }
??????????????? }
??????????????? else//當超過的時候
??????????????? {
??????????????????? for (int i = PageCount - Pagenums + 1; i <= PageCount; i++)
??????????????????? {
??????????????????????? if (i == CurrentPage)
??????????????????????? {
??????????????????????????? //OutPut.Append("<font>");//控制控制選中頁的頁碼樣式
??????????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????????? OutPut.Append(i.ToString());
??????????????????????????? //OutPut.Append("? ");//控制控制選中頁的頁碼樣式
??????????????????????????? //OutPut.Append("</font>");//控制控制選中頁的頁碼樣式
??????????????????????? }
??????????????????????? else
??????????????????????? {
??????????????????????????? OutPut.Append("<a href='");
??????????????????????????? OutPut.Append(PageUrl);
??????????????????????????? OutPut.Append("&page=");
??????????????????????????? OutPut.Append(i.ToString());
??????????????????????????? OutPut.Append("'>");
??????????????????????????? OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????????? OutPut.Append(i.ToString());
??????????????????????????? OutPut.Append(" ");//添加頁碼間的分隔符
??????????????????????????? OutPut.Append("</a>");
??????????????????????? }
??????????????????? }
??????????????? }
??????????? }
??????????? //if (CurrentPage < PageCount)
??????????? //{
??????????? //??? OutPut.Append("<a href='");
??????????? //??? OutPut.Append(PageUrl);
??????????? //??? OutPut.Append("&&page=");
??????????? //??? OutPut.Append(CurrentPage + 1);
??????????? //??? OutPut.Append("'>下一頁</a>");
??????????? //}
??????????? return OutPut;
??????? }
??????? #endregion
??? }
}
轉載于:https://www.cnblogs.com/caiwanguo/archive/2007/10/22/932747.html
總結
- 上一篇: 如何成为领袖? 学习任正非小沃森郭士纳
- 下一篇: 关于xsd问题