Asp.net自定义控件开发任我行(附1)-属性一览众山小
元数据属性应用于服务器控件及其成员,从而提供由设计工具、ASP.NET 页分析器、ASP.NET 运行库以及公共语言运行库使用的信息。当页开发人员在可视化设计器中使用控件时,设计时属性能改进开发人员的设计时体验。仅用于设计时的属性在页请求期间对控件的功能没有任何影响。控件的分析时属性由 ASP.NET 页分析器在其读取页中控件的声明性语法时使用。分析时属性和运行时属性是保证控件在页中正常工作必不可少的内容。
本主题描述常用于控件及其公共属性 (Property) 和事件的元数据属性 (Attribute)。
应用于控件的属性
属性 |
示例 |
---|---|
AspNetHostingPermissionAttribute JIT 编译时代码访问安全属性。 需要使用此属性确保链接到控件的代码具有适当的安全权限。Control 类带有两个 JIT 编译时代码访问安全属性标记: AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal) 和 AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)。 应将第一个属性应用于控件,但并非必须应用第二个属性,因为继承请求是可传递的,在派生类中仍有效。有关更多信息,请参见 SecurityAction。 |
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件。 |
分析时属性。 将自定义控件生成器与控件关联。只有在您希望使用自定义控件生成器,对页分析器用于分析控件的声明性语法的默认逻辑进行修改时,才需要应用此属性。如果仅希望指定控件标记中的内容是否与属性或子控件对应,请使用 ParseChildrenAttribute(在此表后面的内容中描述),而不要使用自定义控件生成器。 |
[ControlBuilder(typeof(MyControlBuilder))] |
设计时和运行时属性。 指定用作控件的默认值的属性。应用此属性可让一个控件在运行时用作查询中的参数,并可定义 ControlParameter 对象在运行时绑定到的默认值。 |
[ControlValueProperty("Text")] |
设计时属性。 在可视化设计器中指定控件的默认事件。在许多可视化设计器中,页开发人员在设计图面上双击控件时,将打开代码编辑器,同时将光标定位到默认事件的事件处理程序中。 |
[DefaultEvent("Submit")] 应用于复合 Web 控件示例中的 Register 示例控件。 |
设计时属性。 当页开发人员在设计图面上选择控件时,此属性 (Attribute) 中指定的属性 (Property) 将在可视化设计器的属性 (Property) 浏览器中突出显示。 |
[DefaultProperty("Text")] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件。 |
设计时属性。 指定与控件关联的设计器类。控件设计器类控制关联的控件在可视化设计器的设计图面上的外观和行为。 |
[Designer(typeof(SimpleCompositeControlDesigner))] 应用于 演练:为 Web 服务器控件创建基本控件设计器 中的示例控件。 |
分析时属性。 指定控件标记中的内容是否与属性或子控件对应。Control 类被标记为 ParseChildren(false),表示页分析器将控件标记中的内容解释为子控件。WebControl 类被标记为 ParseChildren(true),表示页分析器将控件标记中的内容解释为属性。只有在您希望对在 WebControl 类的 ParseChildrenAttribute 属性中指定的逻辑进行修改时才需要应用此属性。 |
[ParseChildren(true, "Contacts")] 应用于 Web 控件集合属性示例中的 QuickContacts 示例控件。 |
设计时属性。 指定当以声明方式在页中使用控件时,可视化设计器是否应在该控件的标记中保存子控件或属性。Control 类被标记为 PersistChildren(true),表示设计器在控件标记中保留子控件。WebControl 类被标记为 PersistChildren(false),表示设计器在控件标记中将属性 (Property) 保存为属性 (Attribute)。 |
[PersistChildren(false)] 应用于 WebControl 类,并且适用于从此类派生的大多数控件。但是,在其标记中保存子控件的容器控件(如 Panel)被标记为 PersistChildren(true) 和 ParseChildren(false)。 |
分析时属性。 指定控件是否受主题或控件外观的影响。如果标记某一控件类型以指示不能向其应用主题,则该控件的所有成员同样也不受主题的影响。 |
[Themeable(false)] 应用上一示例中所示的属性以防止控件及其所有成员受主题或控件外观的影响。 |
设计时属性。 指定从工具箱创建控件时可视化设计器为标记创建的标记格式。 |
[ToolboxData("<{0}:WelcomeLabel runat=\"server\"> </{0}:WelcomeLabel>"] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件。 |
设计时属性。 指定可视化设计器应在工具箱中显示控件还是组件。默认情况下,始终在工具箱中显示控件。此属性只能应用于不希望在工具箱中显示的控件(如模板属性的所有者)。 |
[ToolboxItem(false)] 应用于模板化服务器控件示例中的 TemplateOwner 控件。 |
设计时属性。 指定由验证控件检查的属性的名称。通常这些属性的值由用户在运行时提供,如 TextBox 控件的 Text 属性。在可视化设计器中,允许页开发人员选择验证控件目标的对话框会列出通过页上控件中的 ValidationPropertyAttribute 指定的各个属性。 |
[ValidationProperty("Text")] |
应用于公共属性(Property)的属性(Attribute)
属性 |
示例 |
---|---|
设计时属性。 指定将数据绑定到属性是否有意义。在可视化设计器中,属性浏览器可以在对话框中显示控件的可绑定属性。(例如,在 Visual Studio 中,可绑定属性显示在“数据绑定”对话框中。) 如果属性 (Property) 没有使用此属性 (Attribute) 标记,则属性 (Property) 浏览器会推断其值为 Bindable(false)。 |
[Bindable(true)] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件的 Text 属性。 |
设计时属性。 指定是否应在可视化设计器的属性浏览器中显示某个属性。 将 Browsable(false) 应用于不希望在属性浏览器中显示的属性。没有通过此属性 (Attribute) 标记某个属性 (Property) 时,属性浏览器会推断其默认值为 Browsable(true)。 |
[Browsable(false)] 应用于模板化服务器控件示例中的 VacationHome 示例控件中的 Template 属性。 |
设计时属性。 指定如何在可视化设计器的属性浏览器中对属性进行分类。例如,当页开发人员在属性浏览器中使用分类视图时,Category("Appearance") 将告知属性浏览器在“外观”类别中显示属性。可以指定一个对应于属性浏览器中的现有类别的字符串参数,也可以创建自己的类别。 |
[Category("Appearance")] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件的 Text 属性 |
设计时属性。 指定属性的默认值。此值应与从属性访问器 (getter) 返回的默认值相同。在有些可视化设计器(如 Visual Studio)中,DefaultValueAttribute 属性允许页开发人员使用快捷菜单上的“重置”命令将属性值重置为其默认值。 |
[DefaultValue("")] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件的 Text 属性 |
设计时属性。 指定属性的简短描述。在可视化设计器(如 Visual Studio)中,属性浏览器通常在窗口底部显示选定的属性的描述。 |
[Description("The welcome message text.")] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件的 Text 属性 |
DesignerSerializationVisibilityAttribute 设计时属性。 指定是否对设计时设置的属性或其内容(如子属性或集合项)进行序列化。该属性的构造函数的参数是一个 DesignerSerializationVisibility 枚举值。未应用此属性 (Attribute) 且属性 (Property) 的值已序列化时,则暗示使用默认值 Visible。 |
[DesignerSerializationVisibility (DesignerSerializationVisibility.Content)] 应用于服务器控件属性示例中的 Book 示例控件的 Author 属性。 |
设计时属性。 将自定义 UITypeEditor 编辑器与某个属性或属性类型关联。如果已将此属性 (Attribute) 应用于该类型,则不必将其应用于该类型的属性 (Property)。 |
[Editor(typeof(ContactCollectionEditor), typeof(UITypeEditor))] 应用于 Web 控件集合属性示例中的 QuickContacts 示例控件的 Contacts 属性。 |
设计时属性。 指定属性名称是否显示在源编辑器的 IntelliSense 列表中。也可将此属性应用于方法和事件。此属性的构造函数的参数是一个 EditorBrowsableState 枚举值。未应用此属性时,则暗示使用默认值 Always。 |
[EditorBrowsableAttribute (EditorBrowsableState.Never)] 应用前面示例中演示的属性,以隐藏 IntelliSense 中的成员。 |
设计时和分析时属性。 指定某个属性是否能参与设备和浏览器筛选。页开发人员利用筛选能在一个控件声明中为不同的浏览器指定不同的属性值。例如,页开发人员可以使用筛选为 Label 控件的 Text 属性设置不同的值,其语法如下所示: <asp:Label UP:Text="Hello" and IE:Text="Welcome to my site" runat="server" /> “UP”和“IE”是浏览器筛选器。未应用此属性时,则暗示使用默认值 Filterable(true)。 |
[Filterable(false)] 应用前面示例中演示的属性 (Attribute) 以从设备和浏览器筛选中排除某个属性 (Property)。 |
设计时属性。 指定对属性进行本地化是否有意义。如果一个属性标记为 Localizable(true),则对应的属性值存储在资源文件中。未应用此属性时,则暗示使用默认值 Localizable(false)。 |
[Localizable(true)] 应用于演练:开发和使用自定义服务器控件中的 WelcomeLabel 示例控件的 Text 属性。 |
设计时属性。 指定在属性浏览器中对子属性所做的更改应传播到父属性。 |
[NotifyParentProperty(true)] 应用于服务器控件属性示例中定义的 Author 类型的 FirstName、LastName 和 MiddleName 属性。 |
设计时属性。 指定是将属性 (Property) 保存为控件标记上的属性 (Attribute),还是将其保存为控件标记中的嵌套内容。此属性的构造函数的参数是一个 PersistenceMode 枚举值。 |
[PersistenceMode(PersistenceMode.InnerProperty)] 应用于服务器控件属性示例中的 Book 示例控件的 Author 属性。 |
设计时和分析时属性。 为返回 ITemplate 接口的属性指定命名容器类型。 |
[TemplateContainer(typeof(CustomTemplateContainer))] 应用上一示例中所示的属性 (Attribute) 以指定 ITemplate 属性 (Property) 由 CustomTemplateContainer 类表示。 |
设计时和分析时属性。 指定模板属性允许创建单个实例还是多个实例。如果未使用 TemplateInstanceAttribute 属性 (Attribute) 扩展模板属性 (Property),则默认情况下允许创建多个实例。 |
[TemplateInstance(TemplateInstance.Single)] 应用上一示例中所示的属性 (Attribute) 以指定只能创建一个模板属性 (Property) 实例。 |
分析时属性。 指定控件成员是否可以受主题或控件外观的影响。默认情况下,如果控件类型本身可应用主题,则该控件公开的所有属性都可以应用主题。 |
[Themeable(false)] 应用上一示例中所示的属性以防止控件成员受主题或控件外观的影响。 |
设计时、分析时和运行时属性。 将类型转换器与某个属性或属性类型关联。类型转换器执行从字符串表示形式到指定类型(或相反)的转换。 |
[TypeConverter(typeof(AuthorConverter))] 应用于服务器控件属性示例中定义的 Author 类型。 |
设计时和运行时属性。 指定一个字符串属性表示一个 URL 值,利用此值可以将 URL 生成器与该属性关联起来。 |
[UrlProperty("*.aspx",AllowedTypes=UrlTypes.Absolute|UrlTypes.RootRelative|UrlTypes.AppRelative)] 应用于为 ASP.NET 文件设置特定的文件筛选器,并且允许绝对路径和相对路径。 |
Asp.net自定义控件开发任我行(附1)-属性一览众山小的更多相关文章
- Asp.net自定义控件开发任我行(4)-ViewState保存控件状态
摘要 上一篇我们实现了下拉框的效果,此章的目的主要是保存控件属性状态 内容 我们先来看一个例子,后台代码不变,我们只改UI页面的代码,先在页面上拖放两个控件,一个是我们现在要开发的这个控件,另一个是按 ...
- Asp.net自定义控件开发任我行(2)-TagPrefix标签
摘要 前面我们已经做了一个最简单的TextBox的马甲,此篇文章,我们来讲讲自定义控件的标签.大家可能看到了上一篇中拖放进来的代码是 <cc1:TextEdit ID="TextEdi ...
- Asp.net自定义控件开发任我行(3)-Render
摘要 上一篇我们讲到了自定义标签TagPrefix用法,此篇我们来讲一下控件的呈现,主要是呈现下拉框 内容 呈现的方法有,Render,RenderControl,RenderChildren,这三个 ...
- Asp.net自定义控件开发任我行(1)-笑傲江湖
1.引言 参加工作5个月了,来到一家小公司,有几只老鸟带我,但不是我公司的,几个礼拜才来一次.来到公司做的第一个项目是web项目,里面有很多的重复代码,页面代码都是千篇一律,你这人也太水了吧,垃圾代码 ...
- Asp.net自定义控件开发任我行(8)-数据集绑定
摘要 已经有好几天没有写博客了,今天继续,前几天写到了注册自定义事件,今天我们来讲数据集绑定. 先把运行效果截个图给大家看,让大家心里也有个底.(大家要从第一章开始看起,我们每一章都是接着前面没做完的 ...
- Asp.net自定义控件开发任我行(5)-嵌入资源上
摘要 上一篇我们讲了VitwState保存控件状态,此章我们来讲讲嵌入css文件,js文件,嵌入Image文件我也一笔带过. 内容 随着我的控件的完善,我们目标控件DropDwonCheckList最 ...
- Asp.net自定义控件开发任我行(7)-注册自定义事件
摘要 前面我们已经把嵌入资源讲完了,不知道大家有没有得到收益,本章主要讲自定义事件,也就是给TextBox注册一个点击事件. 引言 不知道道上的朋友有没有注意到TextBox控件没有点击事件,就连网上 ...
- Asp.net自定义控件开发任我行(6)-嵌入资源下
摘要 上一章,我们讲了嵌入.css文件,这一章,我们来讲一下嵌入.js文件,也顺带一个嵌入Image文件 内容 我们前面的几章,一运行,下拉框就显示出来了,但是DropDwonList的下拉框是被隐藏 ...
- Asp.net 自定义控件开发相关的几种嵌入资源解决方案
前提: 如下将要介绍的几种类型资源都要在其属性页窗口, 将 <生成操作> 属性, 设置为[嵌入的资源], 如图: ► 给自定义控件添加自定义图标的几种方案 方法一: 直接在自定义控 ...
随机推荐
- es6-Iterator与for...of
Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set.这样就有了四种数据集合,用户还可以组合 ...
- Java Annotation使用详解
Java Annotation是JDK5.0引入的一种注释机制.它与注释有一定区别,可以理解为代码上的特殊标记,通过这些标记我们可以在编译,类加载,运行等程序类的生命周期内被读取.执行相应的处理.通 ...
- window下安装scala搭载Intellij IDE
最近由于公司业务需求,要用到scala,编写还是windows下较好,linux下运行比较靠谱,废话少说,直接上步骤! 1.首先安装java环境 jdk下载地址:http://www.oracle.c ...
- yum安装软件并保留下载的软件
使用yum插件downloadonly下载安装软件需要的依赖包并保留到指定的文件 安装yum-downloadonly或 yum-plugin-downloadonly 软件包. yum instal ...
- JS中的异常exception
js提供了一套异常处理机制.异常是干扰程序的正常流程的不寻常事故,当发生这样的事故时,你的程序应该抛出一个异常 try_it() { try { console.log(add("1&quo ...
- 【洛谷4009】汽车加油行驶问题(SPFA乱搞)
点此看题面 大致题意:给定一个\(N*N\)的方形网格,其中1表示这个格子有油库,0表示这个格子没油库,且汽车加满油可以行驶\(k\)条网格边.如果遇到油库必须加满油并花费\(A\)元,如果\(X\) ...
- MacOS内核调试环境搭建
http://ddeville.me/2015/08/using-the-vmware-fusion-gdb-stub-for-kernel-debugging-with-lldb http://dd ...
- CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第三节
原文链接 第三节:错误处理和全局内存性能局限 恭喜!通过对CUDA(Compute Unified DeviceArchitecture,即计算统一设备架构的首字母缩写)系列文章第一节和第二节,您现在 ...
- 私人定制,十款最佳Node.js MVC框架
Node.js是JavaScript中最为流行的框架之一,易于创建可扩展的Web应用.本文分享十款最佳的JavaScript框架. Node.js是JavaScript中最为流行的框架之一,易于创建可 ...
- Drupal7强制把主题恢复到默认主题
今天在写Theme,退出登陆的时候无法进入管理后台. 万不得已之下只有使用数据库进行恢复. Rest Drupal Theme to Bartik SQL语句如下: WHERE type = 'the ...