AspNetPager分页控件--使用方法 1


 //此源代码仅供学习参考,不得用作任何商业用途;
  //若需修改并重新编译该控件,请保留完整的源代码的版权信息!
  //有关控件升级及新控件发布信息,请留意 www.webdiyer.com 。
  using System;
  using System.IO;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Web.UI.HtmlControls;
  using System.Collections.Specialized;
  using System.Text;
  using System.ComponentModel;
  using System.ComponentModel.Design;
  using System.Collections;
  namespace Wuqi.Webdiyer
  {
  #region AspNetPager Server Control
  
  #region 控件说明及示例
  /// <summary>
  /// 用于ASP.NET Web应用程序中对数据进行分页的的服务器控件。
  /// </summary>
  /// <remarks>不同于DataGrid控件,AspNetPager分页控件本身并不显示任何数据,而只显示页导航元素,数据在页面上的显示方式与该控件无关。该控件可以为DataGrid、DataList、Repeater以及自定义控件进行分页,配合Sql存储过程,分页性能较使用 DataGrid分页有明显提升,尤其是当数据量大时性能可提升数倍!
  /// <p>AspNetPager 2.0 中新增了通过Url来分页的功能,这使得访问者可以直接输入相应的Url来访问任何页面,并且搜索引擎也可以直接检索每个页面,若使用DataGrid的分页功能,这是无法实现的。</p>
  /// <p>要使用 AspNetPager 分页控件,必须最少指定它的 <see cref="RecordCount"/> 属性,指定并编写 <see cref="PageChanged"/> 事件的处理程序。
  /// <see cref="RecordCount"/> 属性指定要分页的所有数据的总项数,若未指定该值或该值小于等于 <see cref="PageSize"/> ,则AspNetPager控件不会显示任何内容。
  /// 若未指定并编写 <see cref="PageChanged"/> 事件处理程序,则当用户点击页导航元素或在页索引文本框中手式输入页索引并提交时AspNetPager不会跳转到指定的页。
  /// AspNetPager控件的分页方法和DataGrid基本相同,即在它的 <see cref="PageChanged"/> 事件处理程序中将传递事件数据的 <see cref="PageChangedEventArgs"/> 的 <see cref="PageChangedEventArgs.NewPageIndex"/>值赋给 AspNetPager的 <see cref="CurrentPageIndex"/>属性,然后重新将新的数据与数据显示控件绑定。 </p></remarks>
  /// <example>以下示例说明如何用AspNetPager对DataGrid进行分页。
  /// <code><![CDATA[
  ///<%@ Page Language="C#"%>
  ///<%@ Import Namespace="System.Data"%>
  ///<%@Import Namespace="System.Data.SqlClient"%>
  ///<%@Import Namespace="System.Configuration"%>
  ///<%@Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="aspnetpager"%>
  ///<HTML>
  ///<HEAD>
  ///<TITLE>Welcome to Webdiyer.com </TITLE>
  /// <script runat="server">
  /// SqlConnection conn;
  /// SqlCommand cmd;
  /// void Page_Load(object src,EventArgs e)
  /// {
  /// conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
  /// if(!Page.IsPostBack)
  /// {
  /// cmd=new SqlCommand("GetNews",conn);
  /// cmd.CommandType=CommandType.StoredProcedure;
  /// cmd.Parameters.Add("@pageindex",1);
  /// cmd.Parameters.Add("@pagesize",1);
  /// cmd.Parameters.Add("@docount",true);
  /// conn.Open();
  /// pager.RecordCount=(int)cmd.ExecuteScalar();
  /// conn.Close();
  /// BindData();
  /// }
  /// }
  ///
  /// void BindData()
  /// {
  /// cmd=new SqlCommand("GetNews",conn);
  /// cmd.CommandType=CommandType.StoredProcedure;
  /// cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex);
  /// cmd.Parameters.Add("@pagesize",pager.PageSize);
  /// cmd.Parameters.Add("@docount",false);
  /// conn.Open();
  /// dataGrid1.DataSource=cmd.ExecuteReader();
  /// dataGrid1.DataBind();
  /// conn.Close();
  /// pager.CustomInfoText="记录总数:<font color="blue"><b>"+pager.RecordCount.ToString()+"</b></font>";
  /// pager.CustomInfoText+=" 总页数:<font color="blue"><b>"+pager.PageCount.ToString()+"</b></font>";
  /// pager.CustomInfoText+=" 当前页:<font color="red"><b>"+pager.CurrentPageIndex.ToString()+"</b></font>";
  /// }
  /// void ChangePage(object src,PageChangedEventArgs e)
  /// {
  /// pager.CurrentPageIndex=e.NewPageIndex;
  /// BindData();
  /// }
  /// </script>
  /// <meta http-equiv="Content-Language" content="zh-cn">
  /// <meta http-equiv="content-type" content="text/html;charset=gb2312">
  /// <META NAME="Generator" CONTENT="EditPlus">
  /// <META NAME="Author" CONTENT="Webdiyer(yhaili@21cn.com)">
  /// </HEAD>
  /// <body>
  /// <form runat="server" ID="Form1">
  /// <asp:DataGrid id="dataGrid1" runat="server" />
  /// <Webdiyer:AspNetPager id="pager"
  /// runat="server"
  /// PageSize="8"
  /// NumericButtonCount="8"
  /// ShowCustomInfoSection="left"
  /// PagingButtonSpacing="0"
  /// ShowInputBox="always"
  /// CssClass="mypager"
  /// HorizontalAlign="right"
  /// OnPageChanged="ChangePage"
  /// SubmitButtonText="转到"
  /// NumericButtonTextFormatString="[{0}]"/>
  /// </form>
  /// </body>
  ///</HTML>
  /// ]]>
  /// </code>
  /// <p>下面是该示例所用的Sql Server存储过程:</p>
  /// <code>
  /// <![CDATA[
  ///CREATE procedure GetNews
  /// (@pagesize int,
  /// @pageindex int,
  /// @docount bit)
  /// as
  /// set nocount on
  /// if(@docount=1)
  /// select count(id) from news
  /// else
  /// begin
  /// declare @indextable table(id int identity(1,1),nid int)
  /// declare @PageLowerBound int
  /// declare @PageUpperBound int
  /// set @PageLowerBound=(@pageindex-1)*@pagesize
  /// set @PageUpperBound=@PageLowerBound+@pagesize
  /// set rowcount @PageUpperBound
  /// insert into @indextable(nid) select id from news order by addtime desc
  /// select O.id,O.source,O.title,O.addtime from news O,@indextable t where O.id=t.nid
  /// and t.id>@PageLowerBound and t.id < = @PageUpperBound order by t.id
  /// end
  /// set nocount off
  ///GO
  /// ]]>
  /// </code></example>
  #endregion
  [DefaultProperty("PageSize")]
  [DefaultEvent("PageChanged")]
  [ParseChildren(false)]
  [PersistChildren(false)]
  [Description("专用于ASP.Net Web应用程序的分页控件")]
  [Designer(typeof(PagerDesigner))]
  [ToolboxData("<{0}:AspNetPager runat=server></{0}:AspNetPager>")]
  public class AspNetPager:Panel,INamingContainer,IPostBackEventHandler,IPostBackDataHandler
  {
  private string cssClassName;
  private string urlPageIndexName="page";
  private bool urlPaging=false;
  private string inputPageIndex;
  private string currentUrl=null;
  private NameValueCollection urlParams=null; #region Properties #region Navigation Buttons /// <summary>
  /// 获取或设置一个值,该值批示当鼠标指针悬停在导航按钮上时是否显示工具提示。
  /// </summary>
  [Browsable(true),
  Category("导航按钮"), DefaultValue(true), Description("指定当鼠标停留在导航按钮上时,是否显示工具提示")]
  public bool ShowNavigationToolTip
  {
  get
  {
  object obj=ViewState["ShowNavigationToolTip"];
  return (obj==null)?true:(bool)obj;
  }
  set
  {
  ViewState["ShowNavigationToolTip"]=value;
  }
  } /// <summary>
  /// 获取或设置导航按钮工具提示文本的格式。
  /// </summary>
  [Browsable(true),
  Category("导航按钮"),
  DefaultValue("转到第{0}页"),
  Description("页导航按钮工具提示文本的格式")]
  public string NavigationToolTipTextFormatString
  {
  get
  {
  object obj=ViewState["NavigationToolTipTextFormatString"];
  return (obj==null)?"转到第{0}页":(string)obj;
  }
  set
  {
  string tip=value;
  if(tip.Trim().Length<1&&tip.IndexOf("{0}")<0)
  tip="{0}";
  ViewState["NavigationToolTipTextFormatString"]=tip;
  }
  } /// <summary>
  /// 获取或设置一个值,该值指示是否将页索引按钮用中文数字代替。
  /// </summary>
  /// <remarks>
  /// 将该值设为true并且未使用图片按钮时,页索引按钮中的数值1、2、3等将会被中文字符一、

转载于:https://www.cnblogs.com/think-jerry/archive/2007/05/28/762108.html

相关资源:aspnetPager 控件
已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其页功能并不尽如人意,如可定制性差、无法通过Url实现页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行页,手工编写页代码不但技术难度大、任务繁琐而且代码重用率极低,因此页已成为许多ASP.NET程序员最头疼的问题之一。 <br>AspNetPager针对ASP.NET控件的不足,提出了与众不同的解决asp.net中页问题的方案,即将页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现页、呈现自定义的页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要页的数据可以来自任何数据源,如SQL Server、Oracle、Access、mysql、DB2等数据库以及XML文件、内存数据或缓存中的数据、文件系统等等。<br><br>AspNetPager的主要功能有:<br><br>1、支持通过Url进行页:<br>AspNetPager除提供默认的类似于DataGrid和GridView的PostBack页方式外,还支持通过Url进行页,象大多数asp程序中页一样, Url页方式允许用户通过在浏览器地址栏中输入相应的地址即可直接进入指定页面,也可以使搜索引擎搜索到所有页的页面的内容,因此具有用户友好和搜索引擎友好的优点,关于Url页与PostBack页方式的差异,请参考Url与PostBack页方式的对比。<br><br>2、支持Url页方式下的Url重写(UrlRewrite)功能<br>Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义页导航的Url格式,实现Url重写;<br><br>3、支持使用用户自定义图片做为导航元素:<br>您可以使用自定义的图片文件做为控件的导航元素,而不仅仅限于显示文字内容。<br><br>4、功能强大灵活、使用方便、可定制性强:<br>AspNetPager控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件AspNetPager只需要编写短短几行代码,甚至无需编写任何代码,只需设置几个属性就可以实现页功能。<br><br>5、增强的 Visual Studio 2005/2008设计时支持<br>增强的设计时支持使控件在设计时更加直观,易于使用,开发快捷方便。<br><br>6、兼容IE6.0+及FireFox 1.5+等浏览器<br>7、丰富而完整的控件文档和示例项目:<br>控件附带的完整的帮助文档及示例项目能够帮助您快速上手,熟悉AspNetPager控件使用,您还可以通过给作者留言以及论坛提问等方式解决控件使用中遇到的问题。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页