使用AspNetPager控件实现ASP .NET高效分页

需积分: 50 18 下载量 63 浏览量 更新于2024-09-09 1 收藏 2KB TXT 举报
"AspNetPager是一款强大的ASP.NET分页控件,用于在Webform应用程序中实现高效、自定义丰富的分页功能。用户可以方便地通过此控件在网页上展示大量数据,提高用户体验并优化页面加载速度。" 在ASP.NET Webform开发中,分页是一个常见的需求,特别是当网页需要显示大量数据库记录时。AspNetPager控件提供了丰富的功能和灵活性,使得开发者能够轻松集成分页到他们的应用中。以下是对AspNetPager控件主要特性和用法的详细说明: 1. **注册与引用**: 在使用AspNetPager之前,需要将AspNetPager.dll库文件添加到项目引用中,并在ASPX页面头部注册该控件,如下所示: `<%@RegisterAssembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer"%>` 这样就能够在页面上使用`<webdiyer:AspNetPager>`标签来实例化控件。 2. **属性设置**: AspNetPager控件有许多可配置的属性,例如`CssClass`用于设置样式类,`CurrentPageButtonClass`用于当前页按钮样式,`PageSize`定义每页显示的记录数,`Width`设置控件宽度,以及`AlwaysShow`决定是否始终显示分页控件等。在示例代码中,控件的宽度被设置为99%,每页大小为20条记录,且分页按钮样式被指定。 3. **按钮文本与位置**: `FirstPageText`, `LastPageText`, `NextPageText`, 和 `PrevPageText`分别用于自定义首页、末页、下一页和上一页按钮的文本。如示例中,使用了"<<", ">>", ">", 和 "<"。`CurrentPageButtonPosition`属性则控制当前页按钮的位置,这里设置为“Beginning”。 4. **自定义信息显示**: `ShowCustomInfoSection`和`CustomInfoHTML`属性允许开发者自定义显示当前页信息,例如总页数和总记录数。在示例中,自定义信息显示在左边,内容为“%CurrentPageIndex%页/%PageCount%页,%RecordCount%条记录”。 5. **输入框和事件处理**: `ShowPageIndexBox`和`PageIndexBoxType`属性控制用户能否手动输入页码。在例子中,它被设置为`Always`显示,并且类型为`DropDownList`,允许用户通过下拉列表选择页码。`OnPageChanged`事件处理程序用于响应页码改变,如`AspNetPager1_PageChanged`方法。 6. **事件处理**: 当用户更改页码时,`OnPageChanged`事件触发。在提供的代码中,`AspNetPager1_PageChanged`方法被调用,参数是事件源对象和事件参数。通常,这个方法会更新数据绑定,如重新执行查询或检索新的数据集,以显示选定页的数据。在示例中,`searchOrders`方法被调用来根据新的页码执行SQL查询。 7. **数据绑定**: 示例中的`GridView1`控件可能用于显示从数据库检索的数据,`searchOrders`方法接受一个SQL WHERE子句,然后将结果数据绑定到GridView1。在分页操作后,这个方法会被调用来获取新页的数据。 AspNetPager控件为ASP.NET Webform应用提供了一种强大且灵活的分页解决方案,它允许开发者定制各种视觉效果和交互行为,以适应不同项目的需求。通过熟练掌握其用法,可以极大地提升项目的用户体验和性能。
402 浏览量
这个分页控件名为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">
<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>
</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(); } }