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

ASP.NET 如何在其他頁面呼叫 Web 使用者控制項實作的分頁功能

     編輯:ASP.NET 基礎

情境說明

專案中常將分頁邏輯封裝為 Web 使用者控制項(.ascx),以便在多個頁面重複使用。本文示範如何在內容頁面(Content Page)中,於 Page_Load 事件中動態設定該控制項的屬性,完成資料繫結。

分頁使用者控制項介面設計

假設控制項 ID 為 Paging1,對外公開以下屬性:

  • DataControl:要繫結資料的控制項(如 GridView)
  • TableName:資料表名稱
  • Sort:排序方式(asc/desc)
  • Column:排序欄位/主鍵欄位

內容頁面呼叫範例

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // 取得控制項實例
        Paging p = Paging1;

        // 設定繫結目標控制項
        p.DataControl = gvBookType;  // 頁面上的 GridView ID

        // 設定資料來源相關屬性
        p.TableName = "BookShop_BookType";
        p.Sort = "asc";
        p.Column = "BookType_ID";

        // 若控制項內部有自動繫結邏輯,這裡可能不需額外呼叫
        // 否則可能需呼叫 p.BindData() 等方法
    }
}

完整流程補充

  1. 在 .ascx 控制項中實作 BindData() 方法,內部根據屬性產生 SQL、查詢資料、設定 DataControl.DataSource 並 DataBind()。
  2. 控制項應處理分頁事件(如 PageIndexChanging),並在換頁時重新查詢對應頁碼資料。
  3. 建議加入 PageSize、CurrentPageIndex 等屬性,提高彈性。

優化建議

若專案採用資料存取層(DAL)或 ORM,控制項內部不應直接撰寫 SQL 字串,而應呼叫服務層方法,傳入分頁參數取得 PagedList<T> 等標準化結果,降低耦合並防止 SQL 注入。

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