.net自定义控件Control、WebControl、CompositeControl
来源:互联网 发布:电子商务美工论文范文 编辑:程序博客网 时间:2024/05/18 02:25
一、呈现方法
1、Control主要有以下4个方法用于呈现
//该方法为入口方法public virtual void RenderControl (HtmlTextWriter writer) { this.RenderControl(writer,this.xxxAdapter); } protected void RenderControl(HtmlTextWriter writer, ControlAdapter adapter) { if (adapter != null) { //调用相关的适配器方法 } else { this.Render(writer); } }protected internal virtual void Render(HtmlTextWriter writer){ this.RenderChildren();}protected internal virtual void RenderChildren(HtmlTextWriter writer){ //呈现子控件 }/*整个呈现顺序就是: 1.RenderControl(HtmlTextWriter writer) 2.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 3.Render(HtmlTextWriter writer) 4.RenderChildren(HtmlTextWriter writer)*/
2、WebControl在Control的基础上增加了Style,呈现方面就是在Render(HtmlTextWriter writer) 方法中扩展了三个呈现方法,增加一个属性呈现方法。
protected override void Render(HtmlTextWriter writer) { this.RenderBeginTag(writer); this.RenderContents(writer); this.RenderEndTag(writer); } public virtual void RenderBeginTag (HtmlTextWriter writer) { this.AddAttributesToRender(writer); //呈现Tag开始标记 } protected internal virtual void RenderContents (HtmlTextWriter writer) { //调用Control的呈现 base.Render(writer); } public virtual void RenderEndTag(HtmlTextWriter writer) { //呈现结束标记 } protected virtual void AddAttributesToRender (HtmlTextWriter writer) { //呈现Attribute }
3、CompositeControl重写了WebControl的Render (HtmlTextWriterwriter),增加了设计时支持以创建子控件
protected internal override void Render(HtmlTextWriterwriter) { //如果在设计时,创建子控件,也就是在设计时增加友好体验 if(DesignMode) this.EnsureChildControls(); base.Render(writer); }
二、自定义控件常用的特性
1、命名控件特性
① [assembly: TagPrefix("Samples.AspNet", "myControls")] //指定@Register指令中的tagprefix值,Samples.AspNet是命名空间
2、控件特性
① [DefaultProperty("Text")] //打开IDE属性窗口时默认选中的属性项
② [ToolboxData("<{0}:myCustomControl runat=server></{0}:myCustomControl>")] //从工具箱拖放控件生成的默认标记,可以加上其它想默认显示的属性
3、属性特性
① [Bindable(true)] //设置该属性是否支持绑定
② [DefaultValue("")] //属性的默认值(如果在IDE属性栏里输入的值与该值相同,IDE中的这个值不变黑)。显示的默认值则要在构造函数里赋值。
③ [Localizable(true)] //属性是否支持本地化
④ [Browsable(true)] //该项属性是否会显示在控件的“属性”窗口中
⑤ [Description("显示的文本")] //属性的说明
⑥ [Category("Appearance")] //属性分组的类别名称,可以是自定义的值
Action:“操作”组
Appearance:“外观”组
Behavior:“行为 ”组
Data:“数据”组
Default:“杂项”组
Design:“设计”组
DragDrop:“拖放”组
Focus:“焦点”组
Format:“格式”组
Key:“键盘”组
Layout:“布局”组
Mouse:“鼠标”组
WindowStyle:“窗口样式”组
⑦ [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] //指定属性是否在网页的源代码中显示
DesignerSerializationVisibility.Hidden //在代码生成器中不生成属性代码,在aspx的源文件中将看不到此属性
DesignerSerializationVisibility.Visible //在代码生成器中生成属性代码
DesignerSerializationVisibility.Content //在代码生成器中生成的是属性内容的代码,而不是属性本身的代码。只影响aspx中的代码生成器中显示的属性。
⑧ [TypeConverter(typeof(ExpandableObjectConverter))] //将类属性在IDE属性窗口显示出折叠
⑨ [NotifyParentProperty(true)] //是否将属性窗口中对子属性的修改上传到对象模型,并在被修改了的子属性的控件中产生修改通知。
(枚举属性,类属性)
三、自定义控件在web.config中注册
<configuration> <system.web> <pages> <controls> <add tagPrefix="scottgu" src="~/Controls/Header.ascx" tagName="header"/> <add tagPrefix="scottgu" src="~/Controls/Footer.ascx" tagName="footer"/> <add tagPrefix="ControlVendor" assembly="ControlVendorAssembly"/> </controls> </pages> </system.web></configuration>
- .net自定义控件Control、WebControl、CompositeControl
- .net自定义控件Control、WebControl、CompositeControl
- 呈现控件内容 继承Control、WebControl、CompositeControl的不同
- 呈现控件内容 继承Control、WebControl、CompositeControl的不同
- 呈现控件内容 继承Control、WebControl、CompositeControl的不同
- 自定义控件-WebControl示例
- 自定义控件(5)WebControl
- ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl
- ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl
- .ASP.NET自定义服务器控件 第4章 组合控件开发CompositeControl
- 自定义控件(6)CompositeControl的呈现
- 第二章 .Net 控件开发(WebForm) 开发自定义复合控件(1) 继承ComPositeControl类以及子控件
- ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件
- ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件
- ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡
- ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡
- 第一章 .Net 控件开发(WebForm) 开发简单自定义控件(4) Style类以及WebControl类
- 第一章 .Net 控件开发(WebForm) 开发简单自定义控件(5) 继承WebControl类
- QTP DEV控件相关
- OpenLayers(3)cc
- LeetCode之Gas Station
- javascript 中 中文编码
- 关于接口CvCameraViewListener2
- .net自定义控件Control、WebControl、CompositeControl
- ICE资料
- 持续集成(三)- hudson插件入门
- 金额转中文大写
- 印度政府计划在2013年出台约合140元人民币的平板电脑
- 职业生涯中的五个坎该如何跨越
- Oracle常用函数
- 使用BeanPostProcessor接口对受管Bean进行预处理
- 持续集成(四)hudson - 插件管理