程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net 3.5控件和組件開發技術系列—從零開始開發服務器控件(上)

Asp.net 3.5控件和組件開發技術系列—從零開始開發服務器控件(上)

編輯:關於ASP.NET

本章內容

3.1 選擇基類

3.2 控件呈現順序

3.3 Render呈現控件的幾種方式

3.4 AddAttributesToRender方法

3.5 CreateChildControls方法

3.6 INamingContainer接口

3.7 實現復合控件

3.8 常用開發技巧

3.1 選擇基類

在開發一個控件之前要先選擇控件開發要繼承的基類,這些基類封裝了控件最基本的功能,可 以提高代碼重用性,並且每個基類提供的功能不同,在第1章中已經列出了許多常用基類,如果您 還不大清楚,請看一下第1章。

這裡僅談一談一般開發基本控件所選擇基類的方式。

Control

控件開發基類,所有控件都直接或間接繼承該類。提供了各類控件通用屬性和方法,如唯一標 志ID屬性、可見性Visible等。

該類僅具有控件最基本的屬性,擴展靈活性最強。

WebControl

WebControl除了繼承了Control的所有屬性,還增加了布局、可訪問性、外觀樣式等特性;另外 ,對行為也擴充了好多屬性。

Control 和WebControl都用於開發簡單控件(即單個控件或非組件控件)。一般在選擇控件時 ,如果要開發的控件對外觀布局和樣式等控件特性要求比較高,則可以選擇繼承WebControl要方便 得多;反之,選用Control實現即可。如果一定要選用Control實現WebControl的特性也是可以的, 但要自己增加所需的屬性,如布局屬性width和height,實現起來會較麻煩。

一般在基於Web的系統中用得最多,擴展靈活性也很強。

CompositeControl

此類為ASP.NET 2.0版本時已經支持的一個控件基類。如果把現有控件聚合起來創建一個組合控 件時,可以繼承此類,此類默認實現了INamingContainer接口,並且對設計模式表現有較好的支持 。後面會詳細介紹其創建方法。一般用於將具有一定功能的多個控件集成為一個控件的情況。

繼承現有控件

把具有一定功能的成型控件,如Label,Button,甚至GridView等控件, 作為新控件的基類,並在此基礎上擴展或改變(通過override重載其方法實現)其功能,滿足業務 需要。

一般情況下開發一個基於Web平台的控件,比較常用的方法是從WebControl繼承;本 章主要講開發一個控件的過程。就以繼承WebControl為例來展開講解。

只要是Web控件,不 管是ASP.NET控件還是第三方廠商控件,最終被解析到客戶端的都是標准的HTML標記。也可以這麼 說,做一個控件的過程就是根據控件使用者設置控件的屬性(簡單值或復雜數據源集合等)進行組 織HTML並輸出的過程。控件無非就是把一些常用的功能抽象成一個通用的控件,提高重用性,節省 開發時間,這樣要比之前開發人員對每個頁面用純HTML開發要好多了。

控件開發可以理解 為組織HTML的過程。當然ASP.NET控件開發技術提供了一些規則,用多種方式有效地組織輸出這些 HTML標記,對樣式、資源文件封裝等也提供了一些幫助類和功能支持,下面我們就一起來看一下組 織HTML標記的方式。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved