AspNetPager控件的最基本用法

AspNetPager控件是一个基于.net的第三方免费开源控件,具有开发高效、使用方便、功能完整等优点。它弥补了GridView内置分页以及PageDatasource类辅助分页的不足,将分页数据逻辑和页面UI分离开来,非常有利于SQL分页的实现。下面仅举一个最基本的用法,帮助初学者入门。

到AspNetPage官方网站相应页面下载控件:点击打开链接

下载后解压缩,里面有一个AspNetPager.dll文件,它就是我们要使用的控件。另外还有一个AspNetPager.xml文件,它是对应的文档,主要有两个作用:一是供开发人员使用控件时在代码智能提示里嵌入使用说明,二是供自动生成文档工具生成文档。我们把这两个文件一并放到网站的Bin文件下,然后在Visual Studio 2008 Express的工具箱内添加该控件。接着往页面中拖一个GridView和一个AspNetPager控件。

为AspNetPager控件设置相应属性和事件,实现分页功能,这是该控件最重要最基本的用法。代码如下:

Default.aspx文件相关代码:

	<asp:GridView ID="GridView1" runat="server">
	</asp:GridView>
	<webdiyer:AspNetPager ID="AspNetPager1" runat="server" PageSize="20" 
		onpagechanging="AspNetPager1_PageChanging">
	</webdiyer:AspNetPager>


Default.aspx.cs文件相关代码:

	protected void Page_Load(object sender, EventArgs e)
	{
		if (!IsPostBack)
			DisplayData(1, AspNetPager1.PageSize);
	}

	private void DisplayData(int pageIndex, int pageSize)
	{
		SQLiteData md = new SQLiteData();
		AspNetPager1.RecordCount = md.ExecuteScalar<int>("select count(*) from city");
		DataTable dt = md.FillDataTable(string.Format("select * from city limit {0},{1}", (pageIndex - 1) * pageSize, pageSize));
		md.Close();
		GridView1.DataSource = dt;
		GridView1.DataBind();
	}

	protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
	{
		DisplayData(e.NewPageIndex, AspNetPager1.PageSize);
	}

首先在aspx文件里设置PageSize属性,指出每页的大小为20条记录。然后在后台给出总记录数RecordCount、当前页码e.NewPageIndex。其中DisplayData方法编写的好坏很重要,这里显然实现的比较简练。当第一次访问页面时,显示第1页、每页20条记录;以后选择其他页时,显示第e.NewPageIndex页、每页20条记录。本示例使用的是SQLite数据库,支持limit关键词,所以分页逻辑比较简单。需要说明的是,这里用到了自己编写的数据库操作类SQLiteData类,读者可以改写成用原生ADO.net操作,难度不大。

最后显示效果:


AspNetPager控件功能比较强大,这里只不过介绍了最基本用法,以后有机会会介绍其他功能。

这个分页控件名为AspNetPager控件,是Asp.net上使用率最高的分页控件,想怎么分就怎么分.附带'超详细代码注释",好用请给评论. 基本步骤: 1.拖拽控件(存放到到Bin目录下,再拖入工具箱) 2.粘贴复制(已放出实例源码) 3.修改Sql语句,即可使用. 特性如下: 强大的各种属性,附带多种CSS,可自定义CSS,想怎么分就怎么分页! 上下页,1234分页,首尾分页,页面跳转,等等,统统一步搞定. 实例代码(包内也有): ___________________________________________________________________ Default.aspx页面↓↓ ___________________________________________________________________ <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!--分页控件命名--> <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> <!--分页控件命名--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:DataList ID="DataList1" runat="server"> <ItemTemplate> <%# Eval("ID") %> </ItemTemplate> </asp:DataList> <!--分页控件开始--> <webdiyer:AspNetPager ID="Pager1" runat="server" PageSize="8" CssClass="anpager" OnPageChanged="AspNetPager1_PageChanged" FirstPageText="首页 |" LastPageText="| 尾页" NextPageText="下一页" PrevPageText="上一页" ShowPageIndexBox="Always" AlwaysShow="True" Font-Size="13px"> </webdiyer:AspNetPager> <!--分页控件结束--> </div> </form> </body> </html> ____________________________________________________________ Default.aspx.cs页面代码↓↓ ____________________________________________________________ using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; //引用命名空间 using System.Data; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { string connstring = "server=baiyi-js\\SQL2005;uid=sa;pwd=123456;database=xcbaiyi";//修改数据库连接字符串(必须改) protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SqlConnection conn = null; try { conn = new SqlConnection(connstring); conn.Open(); SqlCommand Count = new SqlCommand(); Count.Connection = conn; Count.CommandText = "select count(*) from tuiguang_2"; //Sql查询语句(必修改) Pager1.RecordCount = (int)Count.ExecuteScalar(); //"Pager1"为分页控件ID.在工具箱拖拽添加控件,同时会在aspx页面顶部添加控件命名控件(无需修改) BindData(); } finally { conn.Close(); } } } //绑定数据-2_只修改Sql语句即可 public void BindData() { SqlConnection conn = new SqlConnection(connstring); string sql = "select * from tuiguang_2";//Sql查询语句(必修改) SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); da.Fill(ds, Pager1.PageSize * (Pager1.CurrentPageIndex - 1), Pager1.PageSize, "temptbl"); DataTable dt = ds.Tables["temptbl"]; DataList1.DataSource = dt; DataList1.DataBind(); } //控件事件-每次重新绑定_不需修改 protected void AspNetPager1_PageChanged(object src, EventArgs e) { BindData(); } }
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值