AspNetPager分页控件应用试例
来源:互联网 发布:h5 游戏 源码 编辑:程序博客网 时间:2024/05/21 12:53
备注
不同于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(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>
下面是该示例所用的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
- AspNetPager分页控件应用试例
- AspNetPager分页控件的应用(一)
- AspNetPager分页控件的应用(二)
- AspNetPager分页控件定义及应用样式
- AspNetPager分页控件
- AspNetPager分页控件
- AspNetPager分页控件
- AspNetPager分页控件
- AspNetPager分页控件
- AspNetPager分页控件
- AspNetPager分页控件
- AspNetPager分页控件
- aspnetpager.dll分页控件
- aspnetpager分页控件源码
- AspNetPager分页控件 最新动态
- AspNetPager分页控件
- AspNetPager分页控件--使用方法
- AspNetPager分页控件使用方法
- Samsung(三星)今天不玩MP3,改玩冷血的自动杀人机器人 机枪!!
- 我的网管员软考方案
- Smooth
- 葫芦丝指法
- 放弃也是一种快乐
- AspNetPager分页控件应用试例
- 经典面试问题回答思路
- 购得 C# 高级编程 (第4版)
- 从丹阳回来
- 在Web applications间共享数据
- PE教程2: 检验PE文件的有效性
- 移居Baidu空间
- Linux 系统中的超级权限的控制
- X.org 下 XMMS aMule 等 Gtk1 程序的中文解决