Fork me on GitHub
asp.net结合aspnetpager用sql语句分页
数据库操作类:
复制代码 代码如下:
/// <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(); 
} 
}

posted on 2010-04-29 16:11  HackerVirus  阅读(254)  评论(0编辑  收藏  举报