asp.net结合aspnetpager用sql语句分页

时间:2022-09-08 15:33:33
数据库操作类: 复制代码 代码如下: /// <summary> /// 取得总数 /// </summary> /// <returns></returns> public string getTotal() { StringBuilder sb = new StringBuilder(); sb.Append("select count(*) total from Test"); DataTable dt = DBHelper.ExecuteDt(sb.ToString()); return dt.Rows[0][0].ToString(); } /// <summary> /// 根据当前页码,每页条数,取得相应数据。 /// </summary> /// <param name="pageNum">每页显示条数</param> /// <param name="currentPage">当前页码</param> /// <returns></returns> public DataTable getPagesData(int pageNum, int currentPage) { StringBuilder sb = new StringBuilder(); sb.Append("select top " + pageNum + " * from Test where "); sb.Append("ID not in (select top " + pageNum * currentPage + " ID from Test)"); return DBHelper.ExecuteDt(sb.ToString()); } 前台: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="sqlPager_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:gridview ID="gvSql" runat="server"> </asp:gridview> </div> <div> <webdiyer:aspnetpager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged" PageSize="3"> </webdiyer:aspnetpager> </div> </form> </body> </html> 后台: 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class sqlPager_Default : System.Web.UI.Page { BLL.Test test = new BLL.Test(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { AspNetPager1.RecordCount = Convert.ToInt32(test.getTotal());//此属性保存总记录数.. Bind(); } } private void Bind() { this.gvSql.DataSource = test.getPagesData(Convert.ToInt32(AspNetPager1.PageSize), AspNetPager1.CurrentPageIndex - 1); this.gvSql.DataBind(); } protected void AspNetPager1_PageChanged(object sender, EventArgs e) { Bind(); } }