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

ASP.NET 善用 DataSourceControl 簡化資料綁定與後台程式碼

     編輯:關於ASP.NET

傳統 WebForms 在後台撰寫大量資料繫結、分頁、參數處理程式碼。本文提出以自訂 DataSourceControl 封裝資料邏輯,讓頁面回歸宣告式開發,減少 Code-Behind。

核心概念

  • 每個資料查詢/操作單元封裝為一個繼承 DataSourceControl (或 ObjectDataSource) 的元件。
  • 頁面僅宣告 `` 並設定參數來源 (QueryString、Control、Session)。
  • GridView/FormView 等資料控制項設定 DataSourceID="ds",自動完成查詢、分頁、排序、更新。

以 NBearDataSource 為例

public class ProductDataSource : NBearDataSource
{
    protected override void OnSelecting(DataSourceSelectArguments e)
    {
        // 依據參數建構 WhereClip
        var where = new WhereClip();
        if (!string.IsNullOrEmpty(this.CategoryId))
            where &= Product.__CategoryId == this.CategoryId;
        this.Filter = where;
        base.OnSelecting(e);
    }
}

頁面宣告式使用

<asp:MyProductDataSource ID="ProductDS" runat="server"
    CategoryId='<%# Request.QueryString["cat"] %>' />

<asp:GridView ID="gv" runat="server" DataSourceID="ProductDS" AllowPaging="True" AllowSorting="True" />

優勢總結

適用範圍與限制

  • 適用:資料導向頁面、GridView/DetailsView/FormView/ListView 等資料控制項。
  • 不適用:複雜商務流程、非資料導向邏輯、需精細控制渲染時機的情境。
  • 效能:資料控制項產生 HTML 效能足夠,組件化思維優於手工拼接字串。

延伸應用:EnumDataSource

針對下拉選單綁定列舉值,建立通用 EnumDataSource:

<asp:EnumDataSource ID="edsStatus" runat="server" EnumType="OrderStatus" />
<asp:DropDownList ID="ddlStatus" runat="server" DataSourceID="edsStatus" DataTextField="Text" DataValueField="Value" />

所有列舉綁定即刻完成,零後台程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
面向傳統 Code-BehindDataSourceControl 封裝
分頁/排序程式碼每頁重寫控制項內建自動處理
參數取得手寫 Request/Control 值宣告式 Parameter 綁定
更新/新增欄位對應手動 FindControl 賦值雙向綁定自動映射實體
邏輯重用複製貼上元件化、跨專案共用
維護性分散在各頁集中在 DataSource 類別