首页 > asp.NET自定义服务器控件内部细节系列教程四

asp.NET自定义服务器控件内部细节系列教程四

如大家要转载,请保留本人的版权:

/*

*Description:asp.NET自定义服务器控件内部细节系列教程

*Auther:崇崇-天真的好蓝

*MSN:[email protected]

*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

更多相关:

  • 文档树Document Object Model (DOM) 为文档对象模型, 它使用对象的表示方式来表示对应的文档结构及其中的内容。下面为一个样例 p 元素在文档中的对象所包含的所有属性。控制台:p#domaccessKey: ""align: ""assignedSlot: nullattributeStyleMap: Style...

  • 1、封装 什么是封装?   1.对外部隐藏内部的属性,以及实现细节,给外部提供使用的接口     注意:封装有隐藏的意思,但不是单纯的隐藏     学习封装的目的:就是为了能够限制外界对内部数据的访问   python中属性的权限分为两种:   1.公开的     没有任何限制,谁都可以访问   2.私有的     只有当前类本身能狗...

  • jquery:js框架; 主要区别在dom的操作 jq需要引入文件并且引入顺序在最上面; 找元素 操作元素 js:doucument.getElementById..classname,tagname,name jq:$(选择器) dom是js对象 jqDom是jquery对象 操作内容 js:dom.innerHTML(非表单元素)...

  • Mock.js 的语法规范包括两部分: 数据模板定义规范(Data Template Definition,DTD)数据占位符定义规范(Data Placeholder Definition,DPD)1.数据模板定义规范 DTD 数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值: // 属性名 name // 生...

  • vue   vue.js 是用于构建交互式的 Web 界面的库。它提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。从技术上讲, Vue.js 集中在 MVVM 模式上的视图模型层,并通过双向数据绑定连接视图和模型。实际的 DOM 操作和输出格式被抽象出来成指令和过滤器。相比其它的 MVVM 框架,Vue.j...

  • 不BB写在自己博客园看的舒服     RelativeLayout布局 android:layout_marginTop="25dip" //顶部距离 android:gravity="left" //空间布局位置 android:layout_marginLeft="15dip //距离左边距 // 相对于给定ID控件 andro...

  • top.geometry()设定窗口的初始大小 scale.set()设定滑块的初始值 scale.get()获取滑块变化的值 控件通过回调函数与其他控件进行通信(Label控件中的文本会受到Scale控件上操作的影响) 转载于:https://www.cnblogs.com/TmHm/p/9949947.html...

  • 在一些控件里的keydown方法,没有办法捕获所有的按键消息 比如自己写一个窗体控件库,继承了UserControl 但是没有办法捕获一些键,比如方向键等 所以必须重载 processDialogkey 方法 processDialogkey 的描述 在msdn中是这样的   在消息预处理过程中调用此方法,以处理对话框字符,比如 Ta...

  • 六 PetShop之表示层设计 表示层(Presentation Layer)的设计可以给系统客户最直接的体验和最十足的信心。正如人与人的相交相识一样,初次见面的感觉总是永难忘怀的。一件交付给客户使用的产品,如果在用户界面(User Interface,UI)上缺乏吸引人的特色,界面不友好,操作不够体贴,即使这件产品性能非常优异,架...

  • ASP.NET页生命周期的定义,有以下8个方面:页请求,开始,页初始化,页加载,验证,回发事件,呈现,卸载。 ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页的生命周期非常重要,这样就能在合适的生命周期阶段编写代...

  • 微软在Visual Studio 2017 正式发布的时候也上线了一个参考应用https://github.com/dotnet/eShopOnContainers , 最近微软给这个参考应用写了完善的文档,放在.NET官网的.NET架构频道https://www.microsoft.com/net/architecture。 整个....

  • 第4章 本地化 Android系统会在很多地区的不同设备上运行。为了能够将应用提供给更多的用户,你的应用应该以不同的方式处理文本、音频文件、数字、货币和图形,以适合于你应用使用的地点。 本文档描述了本地化Android应用最好的实例。原则上允许你用Eclipse、Ant-based tools、或者其他任何搭载ADT的IED来开发An...