当前文件:
AfengPager/AfengPager/AfengPager.cs[6K,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
/**/////该源码下载自www.51aspx.com(51aspx.com)
7
8
using System;
9
using System.Web.UI;
10
using System.ComponentModel;
11
using System.Text;
12
using System.Web;
13
14
namespace AfengTools
15
...{
16
[ParseChildren(true)]
17
[PersistChildren(false)]
18
[ToolboxData("<{0}:AfengPager runat='server'></{0}:AfengPager>")]
19
public partial class AfengPager : System.Web.UI.Control
20
...{
21
protected override void Render(HtmlTextWriter output)
22
...{
23
======= 数据初始化 =======#region ======= 数据初始化 =======
24
25
// 总页数
26
int sumPageCount = this.GetTotalPages();
27
// 当前页码
28
int currentPageIndex = this.GetCurrentPageIndex();
29
// 显示的页码数
30
int showPageNumberCount = this.ShowPageNumberCount;
31
// 上翻页码
32
int pageUpIndex = this.GetPageUpIndex(currentPageIndex, showPageNumberCount);
33
// 下翻页码
34
int pageDownIndex = this.GetPageDownIndex(currentPageIndex, showPageNumberCount);
35
36
#endregion
37
38
======= 外层标记 - ... =======#region ======= 外层标记 - <SPAN>...</SPAN> =======
39
40
// 外层标记 - <SPAN>...</SPAN>
41
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PagerFontColor);
42
output.AddStyleAttribute(HtmlTextWriterStyle.FontFamily, this.PagerFontFamily);
43
output.AddStyleAttribute(HtmlTextWriterStyle.FontSize, this.PagerFontSize);
44
output.RenderBeginTag(HtmlTextWriterTag.Span);
45
46
#endregion
47
48
======= 首页 =======#region ======= 首页 =======
49
50
// 首页
51
output.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none");
52
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PagerFontColor);
53
output.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("?{0}=1", this.QueryString));
54
output.RenderBeginTag(HtmlTextWriterTag.A);
55
output.Write(this.PagerLeftText);
56
output.Write(this.FirstPageDescription);
57
output.Write(this.PagerRightText);
58
output.RenderEndTag();
59
output.Write(" ");
60
61
#endregion
62
63
======= 前翻 =======#region ======= 前翻 =======
64
65
// 如果是前 ShowPageNumberCount 页则不显示“前翻”
66
if (currentPageIndex > showPageNumberCount)
67
...{
68
output.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none");
69
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PagerFontColor);
70
output.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("?{0}={1}", this.QueryString, pageUpIndex.ToString()));
71
output.RenderBeginTag(HtmlTextWriterTag.A);
72
output.Write(this.PagerLeftText);
73
output.Write(this.PageUpDescription);
74
output.Write(this.PagerRightText);
75
output.RenderEndTag();
76
output.Write(" ");
77
}
78
79
#endregion
80
81
======= 页码 =======#region ======= 页码 =======
82
83
// 呈现页码部分
84
this.RenderPageNumber(output, currentPageIndex, showPageNumberCount, sumPageCount);
85
86
#endregion
87
88
======= 后翻 =======#region ======= 后翻 =======
89
90
// 如果当前后翻页码 <= 总页数则显示“后翻”
91
if (pageDownIndex <= sumPageCount)
92
...{
93
output.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none");
94
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PagerFontColor);
95
output.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("?{0}={1}", this.QueryString, pageDownIndex.ToString()));
96
output.RenderBeginTag(HtmlTextWriterTag.A);
97
output.Write(this.PagerLeftText);
98
output.Write(this.PageDownDescription);
99
output.Write(this.PagerRightText);
100
output.RenderEndTag();
101
output.Write(" ");
102
}
103
104
#endregion
105
106
======= 末页 =======#region ======= 末页 =======
107
108
// 末页
109
output.AddStyleAttribute(HtmlTextWriterStyle.TextDecoration, "none");
110
output.AddStyleAttribute(HtmlTextWriterStyle.Color, this.PagerFontColor);
111
output.AddAttribute(HtmlTextWriterAttribute.Href, String.Format("?{0}={1}", this.QueryString, sumPageCount.ToString()));
112
output.RenderBeginTag(HtmlTextWriterTag.A);
113
output.Write(this.PagerLeftText);
114
output.Write(this.LastPageDescription);
115
output.Write(this.PagerRightText);
116
output.RenderEndTag();
117
output.Write(" ");
118
119
#endregion
120
121
======= 状态页 =======#region ======= 状态页 =======
122
123
// 状态页 - 1/20页
124
output.Write(this.PagerLeftText);
125
output.Write(currentPageIndex.ToString());
126
output.Write("/");
127
output.Write(sumPageCount.ToString());
128
output.Write("页");
129
output.Write(this.PagerRightText);
130
131
#endregion
132
133
======= 索引页 =======#region ======= 索引页 =======
134
135
// 呈现索引页
136
this.PageIndex.RenderContents(output, sumPageCount, QueryString, this.SelectedPageNumberColor, this.PagerFontFamily);
137
138
#endregion
139
140
output.RenderEndTag();
141
142
output.Write("<!-- ");
143
output.Write("AfengPager V1.0 for VS2005");
144
output.Write(" -->");
145
}
146
147
======= 自定义视图状态 =======#region ======= 自定义视图状态 =======
148
149
protected override void LoadViewState(object savedState)
150
...{
151
Pair p = savedState as Pair;
152
if (p != null)
153
...{
154
base.LoadViewState(p.First);
155
((IStateManager)PageIndex).LoadViewState(p.Second);
156
return;
157
}
158
base.LoadViewState(savedState);
159
160
}
161
162
protected override object SaveViewState()
163
...{
164
object baseState = base.SaveViewState();
165
object thisState = null;
166
167
if (pageIndex != null)
168
...{
169
thisState = ((IStateManager)pageIndex).SaveViewState();
170
}
171
172
if (thisState != null)
173
...{
174
return new Pair(baseState, thisState);
175
}
176
else
177
...{
178
return baseState;
179
}
180
181
}
182
183
protected override void TrackViewState()
184
...{
185
if (pageIndex != null)
186
...{
187
((IStateManager)pageIndex).TrackViewState();
188
}
189
base.TrackViewState();
190
}
191
192
#endregion
193
}
194
}
195