VS-利用AspNetPager控制元件實現真分頁
阿新 • • 發佈:2019-02-07
Web開發中的分頁常見的真分頁假分頁:此篇文章將講解如何利用第三方控制元件(AspNetPager)實現真分頁
2.引用AspNetPager控制元件,為自己所用。(右擊工具箱-選擇項)
3.介面與資料顯示控制元件結合使用:(這裡以GridView控制元件為例)
4.設定AspNetPager控制元件的屬性:
PageSize:顯示頁數 (此例中設定為2)
5.後臺程式碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class TruePage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//頁面第一次載入
if (!Page.IsPostBack)
{
AspNetPager1.RecordCount = GetNum();
Bind();
}
}
//繫結資料方法
private void Bind()
{
SqlConnection con = CreateCon();
//使用cmd,DataAdapter結合dataSet ,利用儲存過程
SqlCommand cmd = new SqlCommand("SelectPage", con);
//給儲存過程新增兩個引數,一個AspNetPager當前頁的開始記錄索引和結束記錄索引
SqlParameter sp1 = new SqlParameter("@startPageIndex",AspNetPager1 .StartRecordIndex );
SqlParameter sp2 = new SqlParameter("@endPageIndex", AspNetPager1.EndRecordIndex);
cmd.Parameters.Add(sp1);
cmd.Parameters.Add(sp2);
cmd.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(ds, "User");
GridView1.DataSource = ds.Tables["User"];
GridView1.DataBind();
}
//建立資料庫連線物件
private SqlConnection CreateCon()
{
SqlConnection con = new SqlConnection("server=.;database=User;uid=sa;pwd=123456");
con.Open();
return con;
}
//查詢某個資料表的記錄條數方法
private int GetNum()
{
SqlConnection con = CreateCon();
SqlCommand cmd = new SqlCommand("select Count(*) from UserInfo", con);
int num=(int)cmd.ExecuteScalar();
return num ;
}
//當前頁變化時,重新繫結資料
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
Bind();
}
}
6.儲存過程程式碼:
CREATE PROCEDURE [dbo].[SelectPage] @startPageIndex int , @endPageIndex int AS BEGIN -- 建立一個臨時表,利用ROW_NUMBER函式增添新列row,按順序排列,參照牛腩 with temptb as( select ROW_NUMBER() OVER(ORDER BY Age desc) as row, * from UserInfo ) -- 在臨時表中按照開始記錄索引和結束記錄索引值來查詢記錄 select * from temptb where Row between @startPageIndex and @endPageIndex END
最終顯示效果: