1. 程式人生 > >asp.net 自定義伺服器控制元件屬性 [Bindable(true)]...

asp.net 自定義伺服器控制元件屬性 [Bindable(true)]...

自定義伺服器控制元件屬性的特性:

Bindable
這個特性表示屬性是否可以繫結一個有效資料來源。通常使用布林值進行設定。例如:Bindable(true)。如果使用值true標記屬性,表示該屬性可以繫結一個有效資料來源,且應引發該屬性的屬性更改通知。

Browsable
指定屬性是否應該在屬性瀏覽器中顯示,使用布林值設定。通常情況下,功用屬性和那些希望在屬性瀏覽器中顯示的屬性被設定為 Browsable(true),只讀屬性和那些不希望在屬性瀏覽器中見到的屬性被設定為 Browsable(false)。

Category
指 定屬性在屬性瀏覽器中進行分組顯示的類別。該設計時特性幫助視覺化編輯器將屬性進行邏輯分組。通常分為:外觀(Appearance)、行為 (Behavior)、佈局(Layout)、資料(Data)、操作(Action)、鍵盤(Key)和滑鼠(Mouse)等。除此之外,還可以自定義 分組類別。

Description

指定顯示在屬性瀏覽器下方,屬性的文字說明。

DesignerSerializationVisibility
指 定屬性是否以及如何在程式碼中序列化,其值為DesignerSerializationVisibility的列舉值。存在3種設定方 式:DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 指定序列化程式不應該序列化屬性 值;DesignerSerializationVisibility(DesignerSerializationVisibility.Visible) 指定應該允許序列化程式序列化屬性的值;
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)指定序列化程式應該序列化屬性的內容,而不是屬性本身。此欄位為只讀。.Visible為其預設值。

NotifyParentProperty

指示當此特性應用到的屬性的值被修改時將通知其父屬性。換言之,如果屬性的父屬性應該在該屬性值改改時接到通知,則向該屬性應用NotifyParentProperty特性。通常使用布林值進行設定。



除了需要熟悉以上設計時特性外,還有一些常用的設計時特性,這些特性聲明於包含屬性的類之前。通常情況下,它們應用於包含子屬性的複雜屬性的類的宣告過程中,因此在聲明覆雜屬性過程中意義重大,列舉如下:
ParseChildren
使 用該特性指示當在頁面上以宣告方式使用控制元件時,巢狀在伺服器控制元件標記內的XML元素是應該視為屬性還是應視為子控制元件。通常情況下,包含兩種宣告方 式:①ParseChildren(true)表示將子XML元素作為伺服器控制元件的子控制元件分析;②ParseChildren(bool childrenasProperty, string defaultProperty),其中childrenasProperty和方式①中的布林值引數意義相同,defaultProperty定義預設 情況下將子控制元件分析為伺服器控制元件的集合屬性。

PersistChildren

該特性指示設計時是否應將伺服器控制元件的子控制元件作為內部巢狀控制元件保持。如果該特性為PersistChildren(true),則將伺服器控制元件的子控制元件作為巢狀伺服器控制元件標記保持。如果為PersistChildren(false),則將該控制元件的屬性作為巢狀元素保持。

PersistenceMode
指 定如何將伺服器控制元件屬性或事件保持到ASP.NET頁面的元資料屬性。共存在4種列舉設定方 式:①PersistenceMode(PersistenceMode.Attribute),指定屬性或事件保持為特 性;②PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty),指定屬性作為服務 器控制元件的唯一內部文字而屬性值是HTML編碼的,只能對字串作這種指 定;③PersistenceMode(PersistenceMode.InnerDefaultProperty),指定屬性在伺服器控制元件中保持為內 部文字,還指示將該屬性定義為元素的預設屬性,只能指定一個屬性為預設屬 性;④PersistenceMode(PersistenceMode.InnerProperty),指定屬性在伺服器控制元件中保持為巢狀標記,這通常 用於複雜物件,它們具有自己的永續性屬性。

DefaultProperty
指定伺服器控制元件的預設屬性,例如[DefaultProperty("MyProperty")]。

TypeConverter
指定用做此特性所繫結到的物件的轉換器的型別。用於轉換的類必須從TypeConverter繼承。使用ConverterTypeName屬性來獲取為該特性所繫結到的物件提供資料轉換的類名。