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

完整分頁解決方案:GridView + QuickPager + Pager_SQL + DAL + 資料庫整合架構

     編輯:關於ASP.NET

本文提出一套端到端分頁解決方案,涵蓋資料呈現 (GridView)、分頁導航 (QuickPager)、SQL 產生 (Pager_SQL)、資料存取 (DAL)、資料庫五大模組,強調模組化、可替換、按需取數、支援海量資料。

方案七大特點

  1. 多資料庫支援:Pager_SQL 內建多種分頁演算法。
  2. 演算法可選:依排序需求選擇最優 (MaxMin/RowNumber/Limit 等)。
  3. 按需取數:每頁僅查詢該頁筆數 (如 20 筆),不多取一筆。
  4. 使用簡單:換演算法/資料庫/處理事件僅幾行程式碼。
  5. 查詢友善:查詢後顯示、修改/刪除後自動重新整理。
  6. 模組可替換:每層介面化,可獨立替換實作。
  7. 海量資料適用:無論資料量大小,效能穩定。

模組組成與替換性

模組間關係:組合而非繼承

// QuickPager 組合 Pager_SQL
public class QuickPager : WebControl
{
    public QuickPagerSQL PagerSQL { get; set; } // 核心分頁邏輯
    public IDALforPager DataAccess { get; set; } // 資料存取介面
    
    public void DataBind()
    {
        PagerSQL.CreateSQL();
        string countSql = PagerSQL.GetRecordCountSQL;
        int total = DataAccess.ExecuteScalar(countSql);
        PagerSQL.PageCount = total;
        PagerSQL.ComputePageCount();
        
        string pageSql = PagerSQL.GetSQLByPageIndex(CurrentPageIndex);
        DataTable dt = DataAccess.ExecuteDataTable(pageSql);
        BoundControl.DataSource = dt;
        BoundControl.DataBind();
    }
}

完整使用流程

  1. 設定 PagerSQL 屬性 (TableName, Columns, OrderBy, Query, PageSize, Kind)。
  2. 設定 DataAccess 連線字串與實作。
  3. 設定 BoundControl (GridView 等) 樣版與欄位。
  4. 呼叫 QuickPager.DataBind() 一鍵完成:統計 → 計算頁數 → 查詢頁面資料 → 綁定控件 → 渲染分頁導航。
  5. 分頁導航事件自動觸發 PageIndexChanged → 重新 DataBind()。
  6. 新增/修改/刪除後呼叫 QuickPager.DataBind() 同步更新。

查詢功能整合

// 使用者輸入查詢條件 → 組合 WHERE 字串
PagerSQL.TableQuery = BuildWhereClause(txtKeyword.Text, ddlCategory.SelectedValue);
// 重新綁定
QuickPager.CurrentPageIndex = 1; // 重置首頁
QuickPager.DataBind();

總結

此方案將分頁核心邏輯 (SQL 產生) 獨立為 Pager_SQL,分頁 UI 為 QuickPager,資料存取抽象為 IDALforPager,達成高內聚、低耦合、高可測試性、高可替換性的企業級分頁架構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
模組預設實作可替換選項介面/基底
資料呈現GridViewDetailsView, FormView, Repeater, DataGrid, DataList, CheckBoxList...BaseDataBoundControl
分頁導航QuickPager吳旗娃分頁, EasyTools, 自訂控件IPager (自訂)
分頁演算法Pager_SQL (QuickPager_SQL)無同類產品,儲存程序略似IPagerSQLStrategy
資料存取DataAccessLibrary (自訂)SQLHelper, Enterprise Library, Dapper, EF CoreIDALforPager (自訂)
資料庫SQL Server 2000/2005Access, Excel, Oracle, MySQL (理論支援)ADO.NET Provider