大家幫幫忙,介紹一下ASPNETPAGER 4.33,在這裡謝過拉!

解决方案 »

  1.   

    我的主页上有介绍和完整的示例:http://www.webdiyer.com
      

  2.   

    AspNetPager 类用于ASP.NET Web应用程序中对数据进行分页的的服务器控件。 有关此类型所有成员的列表,请参阅 AspNetPager 成员。System.Object
       System.Web.UI.Control
          System.Web.UI.WebControls.WebControl
             System.Web.UI.WebControls.Panel
                Wuqi.Webdiyer.AspNetPager[Visual Basic]
    Public Class AspNetPager
    Inherits Panel
    Implements INamingContainer, IPostBackEventHandler, IPostBackDataHandler
    [C#]
    public class AspNetPager : Panel, INamingContainer, IPostBackEventHandler, IPostBackDataHandler
    备注
    不同于DataGrid控件,AspNetPager分页控件本身并不显示任何数据,而只显示页导航元素,数据在页面上的显示方式与该控件无关。该控件可以为DataGrid、DataList、Repeater以及自定义控件进行分页,配合Sql存储过程,分页性能较使用DataGrid分页有明显提升,尤其是当数据量大时性能可提升数倍! 
    AspNetPager 2.0 中新增了通过Url来分页的功能,这使得访问者可以直接输入相应的Url来访问任何页面,并且搜索引擎也可以直接检索每个页面,若使用DataGrid的分页功能,这是无法实现的。要使用 AspNetPager 分页控件,必须最少指定它的 RecordCount 属性,指定并编写 PageChanged 事件的处理程序。 RecordCount 属性指定要分页的所有数据的总项数,若未指定该值或该值小于等于 PageSize ,则AspNetPager控件不会显示任何内容。 若未指定并编写 PageChanged 事件处理程序,则当用户点击页导航元素或在页索引文本框中手式输入页索引并提交时AspNetPager不会跳转到指定的页。 AspNetPager控件的分页方法和DataGrid基本相同,即在它的 PageChanged 事件处理程序中将传递事件数据的 PageChangedEventArgs 的 NewPageIndex值赋给 AspNetPager的 CurrentPageIndex属性,然后重新将新的数据与数据显示控件绑定。 示例
    以下示例说明如何用AspNetPager对DataGrid进行分页。             <%@ 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([email protected])">
                 </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>
                 
    下面是该示例所用的Sql Server存储过程:            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
                 要求
    命名空间:Wuqi.Webdiyer 命名空间程序集: AspNetPager.dll
    请参见
    http://www.webdiyer.com/doc/Wuqi.Webdiyer.AspNetPager.html