關於 Web 用戶控件與 Web 自定義控件的建議

如果現有的 ASP.NET 服務器控件都不符合應用程序的特定要求,則可以創建封裝所需功能的 Web 用戶控件或 Web 自定義控件。這兩種控件之間的主要區別在於設計時的易創建性與易用性。

Web 用戶控件易於創建,但它們在高級方案中使用起來可能不太方便。開發 Web 用戶控件的方式與開發 Web 窗體頁的方式幾乎完全相同。與 Web 窗體相似,用戶控件可以在可視化設計器中創建,可以使用與 HTML 隔離的代碼來編寫,並且可以處理執行事件。但是,由於 Web 用戶控件在運行時動態地進行編譯,所以不能將它們添加到工具箱中,而且它們在添加到頁面上時由簡單的佔位符標誌符號來表示。如果您習慣於完全的 Visual Studio .NET 設計時支持(包括“屬性”窗口和“設計”視圖預覽),這將會使 Web 用戶控件使用起來更不方便。此外,在應用程序之間共享用戶控件的唯一方式是將一個單獨的副本放入每個應用程序,因此如果對該控件作出了更改,將需要進行比較多的維護。

Web 自定義控件是編譯的代碼,這使得 Web 自定義控件更易於使用但更難於創建;Web 自定義控件必須使用代碼來創建。一旦創建該控件,那麼,您就可以將其添加到工具箱中,並在具有完全“屬性”窗口支持和 ASP.NET 服務器控件的其他所有設計時功能的可視化設計器中顯示該控件。此外,還可以在全局程序集緩存中安裝 Web 自定義控件的單個副本,並在應用程序之間共享該副本,這將使維護變得更容易。有關更多信息,請參見全局程序集緩存。

如果您的控件包含大量靜態佈局,用戶控件則可能是較佳的選擇。如果您的控件主要是動態生成的(例如數據綁定表的行、樹視圖的節點或選項卡控件的選項卡),自定義控件則可能是較佳的選擇。

下表概述了這兩種類型之間的主要區別:

Web 用戶控件 Web 自定義控件
易於創建 難於創建
 爲使用可視化設計工具的使用者提供有限的支持 爲使用者提供完全的可視化設計工具支持
每個應用程序中需要控件的一個單獨副本  僅在全局程序集緩存中需要控件的單個副本
不能添加到 Visual Studio 中的工具箱 可以添加到 Visual Studio 中的工具箱
適用於靜態佈局  適用於動態佈局

 

用戶控件結構
一個 Web 用戶控件與一個完整的 Web 窗體頁相似,它們都包含一個用戶界面頁和一個代碼隱藏文件。該用戶界面頁在以下方面與 .aspx 文件不同:

擴展名必須爲 .ascx。
用戶控件中不包含 <HTML>、<BODY> 和 <FORM> 元素(這些元素必須位於宿主頁中)。
在其他任一方面,用戶控件都與 Web 窗體頁相似。在用戶控件上可以使用與標準 Web 窗體頁上相同的 HTML 元素和 Web 控件。例如,如果您要創建一個將用作工具欄的用戶控件,則可以將一系列“按鈕”(Button) Web 服務器控件放在該控件上,並創建這些按鈕的事件處理程序

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章