当前位置: 首页 > 编程日记 > 正文

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

相关文章:

《C++游戏编程入门(第4版)》——1.12 习题

本节书摘来自异步社区出版社《C游戏编程入门(第4版)》一书中的第1章,第1.1节,作者:【美】Michael Dawson(道森),更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.12 习题 C…

Matlab与线性代数 -- 单位矩阵

打磨一项技能最需要的就是耐心,我们知道做一件事情不会一蹴而就,需要长时间的积累。关于Matlab的打磨会持续很长的时间,每天学习一个知识点,一年下来就不得了。要有耐心,要有耐心,跟着我们每天花5分钟的时间…

语句覆盖(Statement coverage)

一、语句覆盖(Statement coverage)“语句覆盖”是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 图6.4是一个被测试的程序,它的源程序…

RSS原理和实现

RSS是在互联网上被广泛采用的内容包装和投递协议。网络用户可以在客户端借助于支持RSS的新闻工具软件&#xff0c;在不打开网站内容页面的情况下&#xff0c;阅读支持RSS输出的网站内容。 1.RSS文件结构 示例&#xff1a; <?xml version"1.0" encoding"gb23…

consul安装配置使用

2019独角兽企业重金招聘Python工程师标准>>> 环境 centos:7.3 docker:1.12.6 kernel:3.10.0-514.6.1.el7.x86_64 consul:0.8.1 server1:10.1.13.221 server2:10.1.13.222 consul的功能 服务发现 健康检查 支持多数据中心 key/value存储 consul的使用场景 docker实例…

Matlab与线性代数 -- 全1矩阵

打磨一项技能最需要的就是耐心&#xff0c;我们知道做一件事情不会一蹴而就&#xff0c;需要长时间的积累。关于Matlab的打磨会持续很长的时间&#xff0c;每天学习一个知识点&#xff0c;一年下来就不得了。要有耐心&#xff0c;要有耐心&#xff0c;跟着我们每天花5分钟的时间…

java 冒泡排序和快速排序 实现

面试的时候经常会遇到面试官让你直接手写排序算法&#xff0c;下面是冒泡排序和快速排序的实现。冒泡排序基本流程就是&#xff0c;自下而上比较相邻的两个元素进行比较&#xff0c;让大的元素往下面沉&#xff0c;较小的往上冒。按照排序规则进行比较&#xff0c;如果是跟排序…

Matlab与线性代数 -- 零矩阵

打磨一项技能最需要的就是耐心&#xff0c;我们知道做一件事情不会一蹴而就&#xff0c;需要长时间的积累。关于Matlab的打磨会持续很长的时间&#xff0c;每天学习一个知识点&#xff0c;一年下来就不得了。要有耐心&#xff0c;要有耐心&#xff0c;跟着我们每天花5分钟的时间…

全球15个顶级技术类博客

1) 生活骇客&#xff08;Lifehacker&#xff09; http://www.lifehacker.com 生活骇客&#xff08;Lifehacker&#xff09;的座右铭表达了它的全部理念&#xff1a;“不要为技术而生活&#xff0c;要为生活而关注技术&#xff01;”这个博客提供了有关于各方各面的“时间节省”…

[ExtJS5学习笔记]第五节 使用fontawesome给你的extjs5应用添加字体图标

本文地址&#xff1a;http://blog.csdn.net/sushengmiyan/article/details/38458411本文作者&#xff1a;sushengmiyan-------------------------------------------------资源链接--------------------------------------------------------FontAwesome glyph编码&#xff1a;…

正则式高人谈解答正则式的心得

条件1&#xff1a; 长度为14个字符 条件2&#xff1a; 其中任意9个位置为数字&#xff0c;并且数字只能是(0,1,3) 条件3&#xff1a; 其余的位置全部为"-"符号 ------------------------------------------ 求一个正则表达式 答案为&#xff1a;^(?!(.*?-){6,})(?…

数据结构与算法--线性表(顺序表)

本图文主要掌握以下问题&#xff1a; 1. 什么是线性表&#xff0c;线性表有哪些操作&#xff1f; 2. 如何利用顺序结构实现线性表&#xff1f;

Myeclipse在启动tomcat的时候的模式改变

在Myeclipse中&#xff0c; windows->preferences->Myeclipse->Servers->Tomcat 然后找到你的相应的Tomcat服务器的版本 当选择Debug mode的时候&#xff0c;当启动tomcat的时候&#xff0c;会进入debug视图 当选择Run mode的时候&#xff0c;启动tomcat的时候&a…

Request.ServerVariables参数集

Request.ServerVariables("Url") 返回服务器地址 Request.ServerVariables("Path_Info") 客户端提供的路径信息 Request.ServerVariables("Appl_Physical_Path") 与应用程序元数据库路径相应的物理路径 Request.ServerVariables("Path_T…

Linux (x86) Exploit 开发系列教程之十一 Off-By-One 漏洞(基于堆)

Off-By-One 漏洞&#xff08;基于堆&#xff09; 译者&#xff1a;飞龙 原文&#xff1a;Off-By-One Vulnerability (Heap Based) 预备条件&#xff1a; Off-By-One 漏洞&#xff08;基于栈&#xff09;理解 glibc mallocVM 配置&#xff1a;Fedora 20&#xff08;x86&#xff…

利用链式存储结构实现线性表

本图文主要介绍了如何利用链式存储结构实现线性表。

自己用的快捷键

win7中 1. Ctrl Shift N —— 创建一个新的文件夹你需要在文件夹窗口中按 Ctrl Shift N 才行&#xff0c;在 Chrome 中是打开隐身窗口的快捷键。2.Win 上/下/左/右 —— 移动当前激活窗口其中&#xff0c;Win 左/右 为移动窗口到屏幕两边&#xff0c;占半屏&#xff0c;Wi…

3月到9月之9月到12月

看看自己这个博客&#xff0c;偶然发现上次的到现在又是半年过去了&#xff0c;这中间发生的太多&#xff0c;可能我天生不爱写东西&#xff0c;呵半年留一次脚印&#xff0c;真不知道我的博客对于博客园来讲算不算资源浪费&#xff01;常看别人的&#xff0c;但自己没写过&…

Java动态代理机制

在Java的动态代理机制中&#xff0c;有两个重要的类。一个是InvocationHandler&#xff0c;另一个是Proxy。InvocationHandler&#xff1a;每一个动态代理类都必须要实现InvocationHandler接口&#xff0c;并且每个代理类的实例都关联到了一个handler&#xff0c;当我们通过代理…

Matlab与线性代数 -- 魔方矩阵

本图文主要介绍了如何利用Matlab实现魔方矩阵。

springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

spring mvc处理方法支持如下的返回方式&#xff1a;ModelAndView, Model, ModelMap, Map,View, String, void。下面将对具体的一一进行说明&#xff1a; ModelAndView Java代码 RequestMapping("/show1") public ModelAndView show1(HttpServletRequest request, …

[文摘20070930]人际关系,你有五十五招

第1招 认清人生的意义以及毕生所全力以赴的目标 为什么要这么拼命&#xff1f;因为你必须对得起自己的良知。 想要成为一个人际关系高手&#xff0c;第一步就必须先确认你的价值观&#xff1b;若是你连这个都摸不清楚&#xff0c;就很难去看透人生的意义&#xff0c;更不用说…

数据库抽取,生成CSV文件导出,CSVUtils工具类

2019独角兽企业重金招聘Python工程师标准>>> 开发背景&#xff1a; 最近一直在忙一个任务调度系统&#xff0c;需求一直没定下来&#xff0c;需求一直变更&#xff0c;调度一直改&#xff0c;往往复复。。。 等这波忙完了可以写一下关于BI这边调度任务的相关问题&am…

Matlab与线性代数 -- Pascal矩阵

本文主要介绍利用Matlab实现pascal矩阵的相关知识。

java加密算法

java加密算法 本篇内容简要介绍BASE64、MD5、SHA、HMAC几种加密算法。 BASE64编码算法不算是真正的加密算法。 MD5、SHA、HMAC这三种加密算法&#xff0c;可谓是非可逆加密&#xff0c;就是不可解密的加密方法&#xff0c;我们称之为单向加密算法。我们通常只把他们作为加密的基…

在多台FMS服务器之间共享流

FMS有一个非常重要的功能,那就是可以在多台服务器之间共享流. 利用这一功能,我们可以把源服务器上的流分发到其它的服务器,这些获得流的服务器同样可以作为新的源服务器使用.这个功能有点象FMS集群. 我们都知道,利用WMP插件可以获取网上的流媒体地址制作网络电视台,其实利用Fla…

linux实现nat转发和内部端口映射

路由机 eth0:114.114.114.114(公网ip) eth1:192.168.1.1(内网ip) pc1 eth0:192.168.1.2(内网ip) eth1(拨号ip) pc2 eth0:192.168.1.3(内网ip) eth1(拨号ip) 1.配置路由机网卡信息 vim /etc/sysconfig/network-scripts/ifcfg-eth1 TYPEEthernet BOOTPROTOstati…

15级团队学习成果汇报 -- 利用C#语言实现展览厅

本图文主要是15级团队学习成果的汇报“ 利用C#语言实现展览厅”。

我所理解的Spring AOP的基本概念

Spring AOP中的概念晦涩难懂&#xff0c;读官方文档更是像读天书&#xff0c;看了很多例子后&#xff0c;写一些自己理解的一些spring的概念。要理解面向切面编程&#xff0c;要首先理解代理模式和动态代理模式。 假设一个OA系统中的一个功能是查看考勤信息&#xff0c;那么我…