edDataSource = new PagedDataSource(); pagedDataSource.DataSource = DataSource.Tables[0].DefaultView; pagedDataSource.AllowPaging = true; RecordCount = DataSource.Tables[0].Rows.Count;
pagedDataSource.PageSize = PageSize; CurrentPageIndex = GetInt(UrlPageIndexName, 1); pagedDataSource.CurrentPageIndex = CurrentPageIndex - 1; int int int int nextPageIndex = 0; prevPageIndex = 0; startcount = 0; endcount = 0;
if (CurrentPageIndex < 1) { CurrentPageIndex = 1; } //计算总页数 if (PageSize != 0) { PageCount = (RecordCount / PageSize); PageCount = ((RecordCount % PageSize) != 0 ? PageCount + 1 : PageCount); PageCount = (PageCount == 0 ? 1 : PageCount); } nextPageIndex = CurrentPageIndex + 1; prevPageIndex = CurrentPageIndex - 1; startcount = (CurrentPageIndex + 5) > PageCount ? PageCount - 9 : CurrentPageIndex - 4;//中间页起始序号 //中间页终止序号 endcount = CurrentPageIndex < 5 ? 10 : CurrentPageIndex + 5; if (startcount < 1) { startcount = 1; } //为了避免输出的时候产生负数, 设置如果小于 1 就从序号 1 开始 if (PageCount < endcount) { endcount = PageCount;
} //页码+5 的可能性就会产生最终输出序号大于总页码,那么就要 将其控制在页码数之内 if (string.IsNullOrEmpty(CustomInfoHTML)) { CustomInfoHTML = "当前页:
" + CurrentPageIndex + "&;nbsp;&;nbsp;总页数:
" + PageCount + "&;nbsp;&;nbsp;总记录数:
" + RecordCount + " "; } PageNumHtml.Append(CustomInfoHTML); if (string.IsNullOrEmpty(UrlRewritePattern)) { UrlRewritePattern = HttpContext.Current.Request.CurrentExecutionFilePath.Substring(1, HttpContext.Current.Request.CurrentExecutionFilePath.LastIndexOf(".") - 1) + "-{0}.aspx"; } PageNumHtml.Append(CurrentPageIndex > 1 ? "
首页 上一 页" : "首页 上一页"); //中间页处理,这个增加时间复杂度,减小空间复杂度 for (int i = startcount; i <= endcount; i++) { PageNumHtml.Append(CurrentPageIndex == i ? "
" + i + "" : "
" + i + ""); } PageNumHtml.Append(CurrentPageIndex != PageCount ? "
下一页 末页" : " 下一页 末页"); return pagedDataSource; } ///
/// 获得指定 Url 或表单参数的 int 类型值, 先判断 Url 参数是否为缺 省值, 如为 True 则返回表单参数的值 /// ///
Url 或表单参数 ///
缺省值 ///
Url 或表单参数的 int 类型值 public static int GetInt(string strName, int defValue) { if (GetQueryInt(strName, defValue) == defValue) { return GetFormInt(strName, defValue); } else { return GetQueryInt(strName, defValue); } } ///
/// 获得指定表单参数的 int 类型值 /// ///
表单参数 ///
缺省值 ///
表单参数的 int 类型值 public static int GetFormInt(string strName, int defValue) { return StrToInt(HttpContext.Current.Request.Form[strName], defValue); } ///
/// 获得指定 Url 参数的 int 类型值 /// ///
Url 参数 ///
缺省值 ///
Url 参数的 int 类型值 public static int GetQueryInt(string strName, int defValue) { return StrToInt(HttpContext.Current.Request.QueryString[strName], defValue); } /// /// /// /// /// ///
将对象转换为 Int32 类型 要转换的字符串
缺省值
转换后的 int 类型结果 public static int StrToInt(object expression, int defValue) { return StrToInts(expression, defValue); } ///
/// 将对象转换为 Int32 类型 /// ///
要转换的字符串 ///
缺省值 ///
转换后的 int 类型结果 public static int StrToInts(object expression, int defValue) { if (expression != null) { return StrToInt(expression.ToString(), defValue); } return defValue; } ///
/// 总页数 /// public int PageCount { get { return _pageCount; } set { _pageCount = value; } } ///
/// 当前页 /// public int CurrentPageIndex