asp.NET自定义服务器控件内部细节系列教程四
如大家要轉載,請保留本人的版權:
/*
*Description:asp.NET自定義服務器控件內部細節系列教程
*Auther:崇崇-天真的好藍
*MSN:chongchong2008@msn.com
*Dates:2007-05-20
*Copyright:ChongChong2008 YiChang HuBei China
*/
四 服務器控件相關元數據Attribute
?? 1.設計期Attribute
???? 設計期Attribute對于控件在可視化設計器內正確運行是很重要的.設計器,屬性瀏覽器和其它的設計期元素使用由設計期attribute提供的元數據的作用如下:
????????? 顯示屬性和事件
????????? 執行設計期的序列化
????????? 把用來實現設計期的功能的類與控件或者屬性類型關聯起來
????????? 1.1 顯示屬性和事件的Attribute
?? System.ComponentModel.BindableAttribute
????????? 描述 : 告知屬性瀏覽器綁定數據到屬性是否有意義,帶有Bindable(true)標記的屬性能顯示在從屬性瀏覽器中裝載的DataBinding對話框里.
????????? 應用 : 只應用于屬性
?? System.ComponentModel.BrowsableAttribute
????????? 描述 : 告知屬性瀏覽器是否在屬性瀏覽器中顯示屬性或者事件,屬性瀏覽器默認顯示所有公用屬性和事件
????????? 應用 : 屬性和事件
?? System.ComponentModel.CategoryAttribute
????????? 描述 : 提供一個分類名,以這個分類名來顯示屬性或事件.
????????? 應用 : 屬性和事件
?? System.ComponentModel.DefaultEventAttribute
????????? 描述 : 告知屬性瀏覽器哪一個控件事件是默認事件.允許頁面開發者雙擊設計界面中的控件,為默認事件編寫事件處理代碼
????????? 應用 : 只應用事件
?? System.ComponentModel.DefaultPropertyAttribute
????????? 描述 : 告知屬性瀏覽器哪一個控件屬性是默認屬性.允許頁面開發者在計界面中選擇控件時,該屬性被屬性瀏覽器突出顯示
????????? 應用 : 只應用屬性
?? System.ComponentModel.DescriptionAttribute
????????? 描述 : 提供一個簡要的描述信息.在用戶選擇了屬性或事件時,屬性瀏覽器就顯示這個描述
????????? 應用 : 屬性和事件
?? System.ComponentModel.EditorBrowsableAttribute
????????? 描述 : 告知代碼編輯器是否為屬性,方法或事件顯示對InterlliSense的支持
????????? 應用 : 屬性,方法和事件
????????? 1.2 設計期的序列化的Attribute
?? System.ComponentModel.DefaultValueAttribute
????????? 描述 : 為屬性提供一個默認值
????????? 應用 : 屬性
?? System.ComponentModel.DesignerSerializationVisibilityAttribute
????????? 描述 : 告知設計器是否序列化屬性或者屬性的內容,復雜屬性含有內容,如子屬性或者集合項.DesignerSerializationVisibility具有以下幾種值:
??Content - 促使屬性的內容(如子屬性或者集合項)序列化
??Hidden? - 從序列化機制中隱藏屬性
??Visible - 序列化屬性值
????????? 應用 : 屬性
?? System.ComponentModel.NotifyParentPropertyAttribute
????????? 描述 : 告知屬性瀏覽器從子屬性到父屬性或者到控件上傳一個更改通知
????????? 應用 : 復雜屬性和它們的子屬性
?? System.Web.UI.PersistChildrenAttribute
????????? 描述 : 告知設計器嵌套在控件標簽內的內容是否和子控或者屬性對應.WebControl標記為PersistChildren(false)
????????? 應用 : 控件
?? System.Web.UI.PersistenceModeAttribute
????????? 描述 : 告知設計器是否把屬性保存到控件的標簽上,或者把它作為一個嵌套屬性進行保存.
???????????????? PersistenceMode枚舉類型具有以下幾個值:
??????????????????????????????? Attribute - 使屬性保存為控件標簽上的一個attribute
??????????????????????????????? EncodeInnerDefaultProperty - 使屬性作為控件標簽中僅有的內容進行保存.內容是編碼的HTML
??????????????????????????????? InnerProperty - 使屬性作為控件標簽中僅有的內容進行保存.
??????????????????????????????? InnerDefaultProperty - 使屬性和控件的任何其它屬性一起保存為控件標簽中嵌套的內容
????????? 應用 : 屬性
?? System.Web.UI.TagPrefixAttribute
????????? 描述 : 告知設計器生成一個Register指令,把一個標簽前綴映射到命名空間和配件中.當頁面開發者把控件從工具箱拖放到設計界面時,這個指令就在.aspx頁面沖生成
????????? 應用 : 包含服務器控件的配件
????????? 1.3 提供高級設計期功能的相關聯類的Attribute
?? System.ComponentModel.DesignerAttribute
????????? 描述 : 把設計器與控件關聯
????????? 應用 : 控件
?? System.ComponentModel.EditorAttribute
????????? 描述 : 把一個用戶界面類型編輯器與類型或屬性相關聯,也把一個組件編輯器與控件相關聯
????????? 應用 : 類或屬性
?? System.ComponentModel.TypeConverterAttribute
????????? 描述 : 把一個類型轉換器與類型或屬性相關聯
????????? 應用 : 類或屬性
?? 2.解析期Attribute
???? 用于被頁面解析器解析.aspx頁面的語法,為相應頁面中的類生成代碼
????????? System.Web.UI.ControlBuilderAttribute
????????? 描述 : 將控件與自定義的控件生成器相關聯
????????? 應用 : 類或屬性
????????? System.Web.UI.ParseChildrenAttribute
????????? 描述 : 通知解析器是否把控件標簽內的嵌套內容翻譯為屬性或者子控件。
???????????????? Control沒有標記這個屬性,意味著解析器把嵌套內容當作子控件。
???????????????? WebControl標記為ParseChildren(true),因此解析器把嵌套內容當作屬性
???????????????? 這個Attribute的兩參數形式中的第二個參數是屬性名,使用兩參數形式時,把控件標簽內的嵌套內容必須和第二個參數設定的屬性一致
????????? 應用 : 控件
????????? System.Web.UI.TemplateContainerAttribute
????????? 描述 : 將ITemplate屬性的容器控件的類型通知解析器。解析器把這個類型作為數據綁定表達式中的Container的確切類型
????????? 應用 : 雷行為ITemplate的屬性
轉載于:https://www.cnblogs.com/amboyna/articles/884746.html
總結
以上是生活随笔為你收集整理的asp.NET自定义服务器控件内部细节系列教程四的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《梦仙》第三十句是什么
- 下一篇: RSS原理和实现