Hello,朋友們,新年快樂.很長時間沒寫博客了,一直在想寫這一篇,可沒想好怎麼寫,就一直放著.現在終於有時間了,那麼來繼續我們的話題吧.自定義控件.如果你還不熟悉自定義控件開發的話,還請看看我以前寫了幾篇,希望對你有幫助
1.1何處繼承
自定義控件一般從以下幾個基類(此處不包含數據控件)
一.Control類(所有服務器控件的基類,算是比較底層的類,如果控件功能比較簡單,要求不多,可直接繼承此類.)
二.WebControl類(標准控件的基類,繼承此類,你可以繼承其豐富的公共屬性,若標准控件中的控件沒有你需要的控件,你可以繼承此類)
三.CompositeControl 類(2.0新增的類,此類繼承自WebControl類,如果你需要制作復合控件,請從繼承此類開始)
四.直接從內置控件繼承(我們知道輪子只需要發明一遍,你的需求跟內置差不多的話,請考慮這麼做)
1.2呈現控件
Control類Render方法為基本呈現方法,RenderContent方法是在Render方法之上的,其為控件加了一個標簽,我認為RenderContent方法是為WebControl類中屬性准備的.基本的方法繼續深刻的去了解.
1.3與用戶交互
純粹的呈現控件還不夠,我們需要傳遞數據,這就必然讓我們了解自定義控件事件處理
1.4接觸屬性(見第五,九,十篇)
屬性相對而言比較簡單,也比較好理解,但其又比較麻煩.
當控件屬性太多,很容易亂,因此我們又認識了元數據,
把屬性進行了分類,如下圖
為了更清晰了,把屬性分好類別,我們又用另外做法,把多種同類型的屬性,定義在一個大的屬性裡面,稱之為復雜屬性,如下圖
屬性已經夠多了,不緊如此,我們還知道屬性的每種類型可能不一樣,而在呈現之後都是呈現字符串形式,簡單屬性.net已為你處理好轉換,當你自定義復雜屬性以後,你則需要自己為你定義的復雜屬性定義一個類型轉換器(見第九篇)
屬性還有另外一種做法,就是可以把屬性當成集合屬性來用.可以說是特殊話的復雜控件,這樣做可以提供給一些列表控件使用(見第10篇) 屬性用途還真不少
1.5控件樣式
控件怎麼能缺樣式,我們自然需要它,在此我們再次認識到了WebControl類.當然也了解到了Style類及其子類
,只要你了解了其中的幾個方法你就可以自定義控件樣式了