asp.net 分頁(yè)sql語(yǔ)句(結(jié)合aspnetpager)
更新時(shí)間:2009年01月30日 18:44:59 作者:
一直用的是存儲(chǔ)過(guò)程分頁(yè),小項(xiàng)目一般不寫存儲(chǔ)過(guò)程,就需要直接寫分頁(yè)sql語(yǔ)句。
數(shù)據(jù)庫(kù)操作類:
/// <summary>
/// 取得總數(shù)
/// </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>
/// 根據(jù)當(dāng)前頁(yè)碼,每頁(yè)條數(shù),取得相應(yīng)數(shù)據(jù)。
/// </summary>
/// <param name="pageNum">每頁(yè)顯示條數(shù)</param>
/// <param name="currentPage">當(dāng)前頁(yè)碼</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());
}
前臺(tái):
<%@ 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>不用存儲(chǔ)過(guò)程的分頁(yè)</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>
后臺(tái):
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());//此屬性保存總記錄數(shù)..
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();
}
}
復(fù)制代碼 代碼如下:
/// <summary>
/// 取得總數(shù)
/// </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>
/// 根據(jù)當(dāng)前頁(yè)碼,每頁(yè)條數(shù),取得相應(yīng)數(shù)據(jù)。
/// </summary>
/// <param name="pageNum">每頁(yè)顯示條數(shù)</param>
/// <param name="currentPage">當(dāng)前頁(yè)碼</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());
}
前臺(tái):
復(fù)制代碼 代碼如下:
<%@ 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>不用存儲(chǔ)過(guò)程的分頁(yè)</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>
后臺(tái):
復(fù)制代碼 代碼如下:
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());//此屬性保存總記錄數(shù)..
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();
}
}
您可能感興趣的文章:
- asp.net中讓Repeater和GridView支持DataPager分頁(yè)
- Asp.Net數(shù)據(jù)控件引用AspNetPager.dll分頁(yè)實(shí)現(xiàn)代碼
- 分享一個(gè)asp.net pager分頁(yè)控件
- asp.net分頁(yè)控件AspNetPager的樣式美化
- Asp.Net分頁(yè)和AspNetPager控件的使用
- asp.net下Repeater使用 AspNetPager分頁(yè)控件
- asp.net 通過(guò)aspnetpager為DataList分頁(yè)
- asp.net結(jié)合aspnetpager使用SQL2005的存儲(chǔ)過(guò)程分頁(yè)
- AspNetAjaxPager,Asp.Net通用無(wú)刷新Ajax分頁(yè)控件,支持多樣式多數(shù)據(jù)綁定
- asp.net mvc自定義pager封裝與優(yōu)化
相關(guān)文章
適用與firefox ASP.NET無(wú)刷新二級(jí)聯(lián)動(dòng)下拉列表
適用與firefox ASP.NET無(wú)刷新二級(jí)聯(lián)動(dòng)下拉列表...2007-08-08
.net mvc超過(guò)了最大請(qǐng)求長(zhǎng)度的解決方法
這篇文章主要為大家詳細(xì)介紹了.net mvc超過(guò)了最大請(qǐng)求長(zhǎng)度的解決方法,限制文件上傳大小,感興趣的小伙伴們可以參考一下2016-07-07
Asp.Net實(shí)現(xiàn)404頁(yè)面與301重定向的方法
這篇文章主要介紹了Asp.Net實(shí)現(xiàn)404頁(yè)面與301重定向的方法,較為詳細(xì)的分析了404頁(yè)面的原理與針對(duì)404錯(cuò)誤與301跳轉(zhuǎn)的實(shí)現(xiàn)方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11
基于.NET中建構(gòu)子中傳遞子對(duì)象的對(duì)象詳解
本篇文章介紹了,基于.NET中建構(gòu)子中傳遞子對(duì)象的對(duì)象詳解。需要的朋友參考下2013-05-05
.net core 讀取本地指定目錄下的文件的實(shí)例代碼
這篇文章主要介紹了.net core 讀取本地指定目錄下的文件的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-09-09
實(shí)例解析Java中的synchronized關(guān)鍵字與線程安全問(wèn)題
首先要清楚的是synchronized鎖住的不是代碼而是對(duì)象,因而在編寫相關(guān)的代碼塊時(shí)要注意線程同步安全問(wèn)題,下面就來(lái)以實(shí)例解析Java中的synchronized關(guān)鍵字與線程安全問(wèn)題2016-06-06
asp.net 下拉列表無(wú)級(jí)數(shù)據(jù)綁定實(shí)現(xiàn)代碼
asp.net 下拉列表無(wú)級(jí)數(shù)據(jù)綁定實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-10-10

