温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:逐迹内容管理系统AspxNuke v2.0源码
当前文件路径:AspxNuke/Common/Component/SimplePager.cs

1using System; 2
using System.ComponentModel; 3
using System.Globalization; 4
using System.Text; 5
using System.Text.RegularExpressions; 6
using System.Web.UI; 7
using System.Web.UI.WebControls; 8
9
[assembly : CLSCompliant(true)] 10
11
namespace AspxNuke.Component 12
{ 13
/// <summary> 14
/// 分页控件 15
/// </summary> 16
[ParseChildren(true)] 17
[ToolboxData("<{0}:SimplePager runat=server> </{0}:SimplePager>")] 18
public class SimplePager : WebControl 19
{ 20
21
22
private ITemplate _itemTemplate; 23
/// <summary> 24
/// 指定存放模板的容器控件 25
/// </summary> 26
[TemplateContainer(typeof (ContainerControl))] 27
[Browsable(false)] 28
[PersistenceMode(PersistenceMode.InnerDefaultProperty)] 29
public virtual ITemplate ItemTemplate 30
{ 31
get { return _itemTemplate; } 32
set { _itemTemplate = value; } 33
} 34
35
private int _pageSize = 10; 36
/// <summary> 37
/// 页长 38
/// </summary> 39
public int PageSize 40
{ 41
set { _pageSize = value; } 42
get { return _pageSize; } 43
} 44
45
private int _currentPage = 1; 46
/// <summary> 47
/// 当前页 48
/// </summary> 49
public int CurrentPage 50
{ 51
set { _currentPage = value; } 52
get { return _currentPage; } 53
} 54
55
private int _recordCount; 56
/// <summary> 57
/// 总记录 58
/// </summary> 59
public int RecordCount 60
{ 61
set { _recordCount = value; } 62
get { return _recordCount; } 63
} 64
65
private string _pageUrl; 66
/// <summary> 67
/// 页地址 68
/// </summary> 69
public string PageUrl 70
{ 71
set 72
{ 73
if (value == null) 74
{ 75
throw new ArgumentNullException("value"); 76
} 77
78
Regex r = new Regex(@"PageNo="); 79
Match m = r.Match(value); 80
if (m.Success) 81
{ 82
_pageUrl = value.Substring(0, m.Index + 7); 83
} 84
else 85
{ 86
if (Regex.IsMatch(value, @"\?")) 87
{ 88
_pageUrl = string.Concat(value, "&PageNo="); 89
} 90
else 91
{ 92
_pageUrl = string.Concat(value, "?PageNo="); 93
} 94
} 95
} 96
get { return _pageUrl; } 97
} 98
99
/// <summary> 100
/// 在这里进行检查并创建模板 101
/// </summary> 102
/// <param name="e">包含事件数据的类的基类</param> 103
protected override void OnDataBinding(EventArgs e) 104
{ 105
EnsureChildControls(); //确定是否包含子控件,否则创建 106
base.OnDataBinding(e); 107
} 108
109
/// <summary> 110
/// 创建子控件 111
/// </summary> 112
protected override void CreateChildControls() 113
{ 114
if (_itemTemplate != null) 115
{ 116
ContainerControl cc = new ContainerControl(_pageSize, _currentPage, _recordCount, _pageUrl); 117
cc.ShowPage(); 118
_itemTemplate.InstantiateIn(cc); 119
Controls.Add(cc); 120
} 121
else 122
{ 123
Controls.Add(new LiteralControl(" NO TEMPLATE")); 124
base.CreateChildControls(); 125
} 126
} 127
} 128
129
/// <summary> 130
/// 放模板的容器 131
/// </summary> 132
[ToolboxItem(false)] 133
public class ContainerControl : WebControl, INamingContainer 134
{ 135
初始化及内部方法 206
207
private int _currentPage; 208
private string _firstPage; 209
private string _lastPage; 210
private string _listPages; 211
private string _nextPage; 212
private int _pageCount; 213
private int _pageSize; 214
215
private string _prevPage; 216
private int _recordCount; 217
218
/// <summary> 219
/// 首页 220
/// </summary> 221
public string FirstPage 222
{ 223
set { _firstPage = value; } 224
get { return _firstPage; } 225
} 226
227
/// <summary> 228
/// 上一页 229
/// </summary> 230
public string PrevPage 231
{ 232
set { _prevPage = value; } 233
get { return _prevPage; } 234
} 235
236
/// <summary> 237
/// 下一页 238
/// </summary> 239
public string NextPage 240
{ 241
set { _nextPage = value; } 242
get { return _nextPage; } 243
} 244
245
/// <summary> 246
/// 尾页 247
/// </summary> 248
public string LastPage 249




