日期:2010-08-20  浏览次数:20516 次

  由于.net自带的分页功能极其死板,自定义性不强不能满足需求,俺花了一个多星期的时间 写成的一个.net分页控件。

  特性:

  1、支持datagrid,datalist等分种数据显示控件,理论上只要有datasource的控件都可以

  2、支持url方式分页,url分页的每一页都可以被搜索引擎搜到,并且支持url重写

  3、控件样式可自定义

  4、封装完全,使用过程序只需写一行代码

  1 /******************************************************************
  2 ** 文件名:Pager.cs
  3 ** 创建人:杨响武
  4 ** 日 期:2005年7月27日
  5 ** 修改人:
  6 ** 日 期:
  7 ** 描 述:
  8 **
  9 **----------------------------------------------------------------
 10 ******************************************************************/
 11
 12 using System;
 13 using System.Web.UI.WebControls;
 14 using System.Web.UI.HtmlControls;
 15 using System.Web;
 16 using System.Web.UI;
 17 using System.Text.RegularExpressions;
 18
 19 namespace MyCompany.Controls
 20 {
 21     /// <summary>
 22     /// 分页控件
 23     /// </summary>
 24     public class Pager : Label, INamingContainer
 25     {
 26         #region 成员变量和构造函数
 27         HttpContext context = HttpContext.Current;
 28         Label countLabel;
 29         HyperLink previousButton;
 30         HyperLink nextButton;
 31         HyperLink firstButton;
 32         HyperLink lastButton;
 33         HyperLink[] pagingLinkButtons;
 34        
 35         public override ControlCollection Controls
 36         {
 37             get
 38             {
 39                 EnsureChildControls();
 40                 return base.Controls;
 41             }
 42         }
 43
 44         protected override void CreateChildControls()
 45         {
 46             Controls.Clear();
 47
 48             AddCountLabel();
 49
 50             AddPageButtons();
 51
 52             AddPreviousNextHyperLinks();
 53
 54             AddFirstLastHyperLinks();
 55         }
 56         #endregion
 57
 58         #region 呈现方法
 59         protected override void Render(HtmlTextWriter writer)
 60         {
 61 //