您目前尚未登陆,请选择【登陆】或【注册
首页->全站代码->逐迹内容管理系统AspxNuke v2.0源码>>Common/Component/SimplePager.cs>>代码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:逐迹内容管理系统AspxNuke v2.0源码


当前文件路径:AspxNuke/Common/Component/SimplePager.cs 文件类型
普通视图
		            
1using System; 2using System.ComponentModel; 3using System.Globalization; 4using System.Text; 5using System.Text.RegularExpressions; 6using System.Web.UI; 7using System.Web.UI.WebControls; 8 9[assembly : CLSCompliant(true)] 10 11namespace 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