温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:AfengPager通用URL分页源码及Demo
当前文件:
AfengPager/AfengPager/Methods.cs[5K,2009-6-12 11:31:32],打开代码结构图
AfengPager/AfengPager/Methods.cs[5K,2009-6-12 11:31:32],打开代码结构图1// Author : Afeng 2
// FileName : AfengPager 3
// Release : 2008/06/23 1.0 4
// Description : 通用Url分页控件 5
// Mail : 200840418@qq.com 6
7
using System; 8
using System.Collections.Generic; 9
using System.Text; 10
using System.Web; 11
using System.Web.UI; 12
13
namespace AfengTools 14
{ 15
public partial class AfengPager 16
{ 17
/// <summary> 18
/// 得到总页数(动态,前置条件:总记录数、每页显示的记录数) 19
/// </summary> 20
/// <returns></returns> 21
private Int32 GetTotalPages() 22
{ 23
if (this.ShowRecordCount != 0) 24
{ 25
return (this.TotalRecordCount + this.ShowRecordCount - 1) / this.ShowRecordCount; 26
} 27
return 0; 28
} 29
30
/// <summary> 31
/// 得到当前选中的页码(动态,前置条件:QueryString) 32
/// </summary> 33
/// <returns></returns> 34
private Int32 GetCurrentPageIndex() 35
{ 36
if (HttpContext.Current != null && HttpContext.Current.Request.QueryString[QueryString] != null) 37
{ 38
return int.Parse(HttpContext.Current.Request.QueryString[QueryString]); 39
} 40
return 1; 41
} 42
43
/// <summary> 44
/// 得到前翻页码(动态,前置条件:当前页码) 45
/// </summary> 46
/// <param name="currentPageIndex">当前选中的页码</param> 47
/// <param name="showPageNumberCount">每页显示的分页页码数量</param> 48
/// <returns></returns> 49
private Int32 GetPageUpIndex(int currentPageIndex, int showPageNumberCount) 50
{ 51
if (currentPageIndex % showPageNumberCount == 0) 52
return (currentPageIndex / showPageNumberCount - 2) * showPageNumberCount + showPageNumberCount; 53
else 54
return (currentPageIndex / showPageNumberCount - 1) * showPageNumberCount + showPageNumberCount; 55
} 56
57
/// <summary> 58
/// 得到后翻页码(动态,前置条件:当前页码) 59
/// </summary> 60
/// <param name="currentPageIndex">当前选中的页码</param> 61
/// <param name="showPageNumberCount">每页显示的分页页码数量</param> 62
/// <returns></returns> 63
private Int32 GetPageDownIndex(int currentPageIndex, int showPageNumberCount) 64
{ 65
if (currentPageIndex % showPageNumberCount == 0) 66
return (currentPageIndex / showPageNumberCount) * showPageNumberCount + 1; 67
else 68
return (currentPageIndex / showPageNumberCount + 1) * showPageNumberCount + 1; 69
} 70
71
/// <summary> 72
/// 呈现页码部分 73
/// </summary> 74
/// <param name="output">HtmlTextWriter</param> 75
/// <param name="currentPageIndex">当前页码</param> 76
/// <param name="showPageNumberCount">显示的页码数量</param> 77
private void RenderPageNumber(HtmlTextWriter output, int currentPageIndex, int showPageNumberCount, int sumPageCount) 78
{ 79
// 如果当前页不能整除 showPageNumberCount 页 80
if (currentPageIndex % showPageNumberCount != 0) 81
{ 82
for (int i = currentPageIndex / showPageNumberCount * showPageNumberCount + 1, j = 1; j <= showPageNumberCount && i <= sumPageCount; i++, j++) 83
{ 84
output.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none"); 85
86
// 当前选中页用特殊颜色标记 87
if (i == currentPageIndex) 88
{ 89
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.SelectedPageNumberColor); 90
} 91
else 92
{ 93
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PageNumberColor); 94
} 95
96
output.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("?{0}={1}", this.QueryString, i.ToString())); 97
output.RenderBeginTag(HtmlTextWriterTag.A); 98
output.Write(this.TextBeforePageNumber); 99
output.Write(i.ToString()); 100
output.Write(this.TextAfterPageNumber); 101
output.RenderEndTag(); 102
output.Write(" "); 103
} 104
} 105
else 106
{ 107
for (int i = (currentPageIndex / showPageNumberCount - 1) * showPageNumberCount + 1, j = 1; j <= showPageNumberCount && i <= sumPageCount; i++, j++) 108
{ 109
output.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none"); 110
111
// 当前选中页用特殊颜色标记 112
if (i == currentPageIndex) 113
{ 114
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.SelectedPageNumberColor); 115
} 116
else 117
{ 118
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PageNumberColor); 119
} 120
121
output.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("?{0}={1}", this.QueryString, i.ToString())); 122
output.RenderBeginTag(HtmlTextWriterTag.A); 123
output.Write(this.TextBeforePageNumber); 124
output.Write(i.ToString()); 125
output.Write(this.TextAfterPageNumber); 126
output.RenderEndTag(); 127
output.Write(" "); 128
} 129
} 130
} 131
} 132
} 133






}