首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

AspNetPager 分頁控件完全指南:存儲過程分頁、兩種顯示模式與後台綁定實戰

     編輯:關於ASP.NET

控件簡介

AspNetPager 是 ASP.NET WebForms 時代最流行的分頁控件,官網 webdiyer.com 提供文檔與存儲過程生成工具。

SQL Server 存儲過程分頁實現

CREATE PROC Paged 
    @pageIndex INT, 
    @pageCount INT OUTPUT, 
    @pageSize INT 
AS
DECLARE @count INT
SELECT @count = COUNT(*) FROM dbo.Student
SET @pageCount = CEILING(@count * 1.0 / @pageSize)
SELECT * FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY dbo.Student.stuId) AS tempId, * 
    FROM dbo.Student
) AS stu 
WHERE tempId >= @pageSize * (@pageIndex - 1) + 1 
  AND tempId <= @pageIndex * @pageSize

使用 ROW_NUMBER() 窗口函數實現高效分頁,適用 SQL Server 2005+。

頁面引入與模式一:首頁/上一頁/下一頁/尾頁

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
    CustomInfoHTML="共%PageCount%頁,當前第%CurrentPageIndex%頁,每頁%PageSize%條,共%RecordCount%條"
    FirstPageText="首頁" LastPageText="尾頁" NextPageText="下一頁" PrevPageText="上一頁"
    PageIndexBoxType="TextBox" ShowCustomInfoSection="Left" ShowPageIndex="False"
    ShowPageIndexBox="Always" SubmitButtonText="Go" TextAfterPageIndexBox="頁"
    TextBeforePageIndexBox="轉到" OnPageChanging="AspNetPager1_PageChanging"
    AlwaysShow="True" PageSize="10" ShowMoreButtons="false" HorizontalAlign="Center">
</webdiyer:AspNetPager>

後台綁定邏輯

protected void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) InitGridView();
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e) {
    AspNetPager1.CurrentPageIndex = e.NewPageIndex;
    InitGridView();
}
private void InitGridView() {
    int count, pageCount;
    gridStudent.DataSource = new BLL.StudentBLL().GetStudents(
        AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, out pageCount, out count);
    gridStudent.DataBind();
    AspNetPager1.RecordCount = count; // 必須賦值總記錄數
}

模式二:數字導航(1 2 3 4 5 ...)

<webdiyer:AspNetPager ID="AspNetPager1" runat="server" 
    PageSize="5" OnPageChanging="AspNetPager1_PageChanging">
</webdiyer:AspNetPager>

僅設置 PageSize 與事件,控件自動渲染數字鏈接模式。

常用屬性速查

屬性說明
PageSize每頁記錄數
RecordCount總記錄數(後台賦值)
CurrentPageIndex當前頁碼
ShowPageIndexBox是否顯示跳轉輸入框
CustomInfoHTML自定義統計信息模板
OnPageChanging分頁事件處理器

遷移提示:ASP.NET Core / MVC 專案建議使用 X.PagedList、LazyLoader 或前端分頁組件(如 DataTables、Element UI Pagination)配合 API 分頁接口。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved