ASP.NET 2.0數據綁定的發展簡述
ASP.NET 2.0數據綁定:為什么需要新的數據源模型
數據綁定是開發人員在 ASP.NET 1.x 中發現的最令人愉快的意外功能之一。與 Active Server Pages 對數據訪問的支持相比,數據綁定是簡單性和有效性的非凡結合。然而,如果根據真正開發人員的需要進行衡量,則它還不夠完美。其局限不在于總體功能方面,而在于開發人員必須編寫大量代碼來處理甚至非常簡單和常見的操作(例如,分頁、排序或刪除)。為了彌補這一缺陷,ASP.NET 2.0 添加了一種新的數據源模型(請參閱我的文章: More Load, Less Code with the Data Enhancements of ASP.NET 2.0)。它包括很多不帶 UI 的新控件,這些控件將數據綁定控件的可視部分和數據容器聯系起來。開發人員需要在 ASP.NET 1.x 中編寫的絕大部分代碼經過適當的分解和創作,現在基本上都被嵌入到一系列新的控件中:數據源組件。
使用數據源組件有很多好處 — 首先,可以得到完全聲明性的數據綁定模型。新模型減少了以內聯方式插入到 ASPX 資源中或者分散在代碼隱藏類中的松散代碼。新的數據綁定體系結構強制開發人員遵守嚴格的規則。此外,它還從本質上改變了代碼的質量。附加到事件的較長代碼塊通常會消失,而被只是插入到現有框架中的組件所取代。這些數據源組件派生自抽象類,實現了已知的接口,并且總體而言意味著更高級別的可重用性。
Nikhil Kothari 的有關控件開發的優秀著作 — Developing Microsoft ASP.NET Server Controls and Components — 幫助成千上萬的開發人員生成自定義控件,并且說明了設計和實現的最佳做法。但是,一本書 — 無論它有多么偉大 — 都永遠無法取代一個更好的系統框架。借助于 ASP.NET 2.0,您還獲得了一個完全重新設計的類圖 — 當您沿著類樹從基礎類向葉子類滾動時,它能夠添加更具體的數據綁定功能。通過新的數據綁定控件層次結構,所有開發人員都可以更容易地選取正確的類來加以繼承,以便生成他們自己的自定義數據綁定控件。
在本文中,您將提前了解 ASP.NET 2.0 數據綁定模型中的能夠對自定義控件產生影響的更改。在此過程中,您將了解可用的新基類以及新的高質量自定義控件的新要求。
ASP.NET 2.0數據綁定:數據綁定控件
ASP.NET 2.0 數據源模型并未要求必須使用新的控件(例如,GridView 和 FormView);它仍然能夠與舊樣式的控件(例如,DataGrid 和 CheckBoxList)協同工作。這對于控件開發人員而言意味著什么呢?有兩個截然不同類型的數據源需要處理 — 傳統的基于 IEnumerable 的數據容器(例如,DataView 和集合)以及數據源控件(例如,SqlDataSource 和 ObjectDataSource)。最后,無論數據源是 ADO.NET 對象、自定義集合還是數據源組件,ASP.NET 2.0 數據綁定控件都必須能夠將傳入的任何數據規格化為可枚舉的集合。
在 ASP.NET 1.x 中,文檔在某種程度上領先于框架。文檔正確地標識和討論了三個類型的數據綁定控件 — 標準控件、列表控件和復合控件。任何只是提供 DataBind 方法和 DataSource 屬性的非空實現的控件都屬于第一個類別。列表控件是下列兩者的有趣結合:高級布局屬性(例如,RepeatColumns 和 RepeatLayout),以及為綁定的每個數據元素重復的固定的嵌入式項模板。最后,復合控件負責通過組合一個或多個現有控件來設計最終的用戶界面。文檔準確地闡述了與創建上述類型的控件相關的任何問題;然而,ASP.NET 框架卻并未提供很多基類來簡化開發人員的任務。圖 1 顯示了 ASP.NET 2.0 中的新的數據綁定控件層次結構。請注意顯示為黃色的基類以及它們在整個類樹中的分布。
圖 1.
對圖 1 中呈現的基類進行一番觀察是一件有趣的事情。它們在表 1 中列出并進行了詳細說明。
類 |
說明 |
---|---|
BaseDataBoundControl |
數據綁定控件的根類。執行數據綁定并驗證任何綁定數據。 |
DataBoundControl |
包含用于與數據源控件和數據容器進行通信的邏輯。可以從該類繼承以生成標準的數據綁定控件。 |
ListControl |
列表控件的基類,提供 Items 集合和高級布局呈現功能。 |
CompositeDataBoundControl |
實現復合控件所必需的典型代碼,包括在進行回發之后根據視圖狀態還原控件樹的代碼。 |
HierarchicalDataBoundControl |
基于樹的分層控件的根類。 |
表 1. ASP.NET 2.0 中的基本數據綁定類
對于任何曾經花費巨大精力來創建能夠管理自己的數據集合并且能夠正確地從視圖狀態還原的、具有豐富功能的數據綁定控件的人而言,這些類特別受歡迎。
以上就簡單介紹了ASP.NET 2.0數據綁定功能。
【編輯推薦】