天天看点

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();

}

}