利用ASP.NET 2.0技術,創建Web自定義服務器控件並不是一件輕松的事情。 因為,這需要開發人員了解並能夠靈活應用多種Web開發技術,例如,CSS樣式表 、客戶端腳本語言、.NET開發語言、服務器控件開發技術,甚至是當前最火的 AJAX技術等等。雖然現實如此"艱難",但是這種開發技術也不是真的難到不可掌 握。事事都要從頭做起。本文將針對利用ASP.NET 2.0技術,創建Web自定義服務 器控件的基礎知識進行詳細介紹,內容包括:服務器控件概念、控件類型、生命 周期等。
1. 什麼是Web服務器控件
在ASP.NET 2.0中,Web服務器控件是指在服務器上執行程序邏輯的組件。這 個組件可能生成一定的用戶界面,也可能不包括用戶界面。每個服務器控件都包 含一些成員對象,以便開發人員調用,例如,屬性、事件、方法等。
通常情況下,服務器控件都包含在ASP.NET頁面中。當運行頁面時,.NET執行 引擎將根據控件成員對象和程序邏輯定義完成一定的功能。例如,在客戶端呈現 用戶界面。這時,用戶可與控件發生交互行為,當頁面被用戶提交時,控件可在 服務器端引發事件,並由服務器端根據相關事件處理程序來進行事件處理。服務 器控件是WebForm編程模型的重要元素,它們構成了一個新的、基於控件的表單 程序的基礎。通過這種方式可以簡化Web應用程序的開發,提高應用程序的開發 效率。
服務器控件的廣泛應用,簡化了應用程序的開發,提高了工作效率。那麼, 何時應創建並使用自定義服務器控件呢?下面列舉了在三種具體適用情況:
(1)某個現有服務器控件基本符合應用要求,但是,缺少某些特殊的功能, 這時可以通過從現有控件中派生並重寫其屬性、方法或事件來自定義服務器控件 。
(2)需要使用的服務器控件結合了兩個或多個現有控件的功能,例如,封裝 一個按鈕和一個文本框的復合控件。此時可以通過創建服務器控件達到這一目的 。
(3)現有服務器控件(或其組合)均不符合應用的要求。對於這種情況,可 以通過從基類派生的方式來創建自定義服務器控件。
2 服務器控件的類型
ASP.NET 2.0提供了多種服務器控件。根據服務器控件定義方式,可分為以下 3種類型:HTML服務器控件、ASP.NET標准服務器控件和自定義服務器控件。
(1)HTML服務器控件
HTML服務器控件派生自名字空間System.Web.UI.HtmlControls。它們由普通 HTML控件(指HTML語言已定義的控件,例如,Button、Input等)轉換而來,其 呈現的輸出,基本上與普通HTML控件一致。默認情況下,服務器端很難控制Web 頁面上的普通HTML控件,但是,通過將普通HTML控件轉換為HTML服務器控件的方 法,開發人員則能夠輕而易舉對其進行編程控制。
將普通HTML控件轉換為HTML服務器控件方法比較簡單。一般情況下,通過兩 個步驟完成轉換:
(1)在普通HTML控件特性中添加Runat="Server"屬性;
(2)設置ID屬性。通過轉換,普通HTML控件的相關屬性、事件、方法等將全 部映射到HTML服務器控件中,由此,通過編程即可在頁面處理過程中引用並控制 該HTML服務器控件。