利用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伺服器控制項。