ASP.NET自定义控件开发点滴(一)
来源:互联网 发布:淘宝店主营在哪里设置 编辑:程序博客网 时间:2024/06/05 00:58
出处:http://blog.csdn.net/caoxicao
作者:草惜草
转载请注明出处
这次在学习DotNet自定义控件开发过程中将会把一些小小的心得写出来,一来让自己记得更加牢固,二来也可以为后来人提供学习的方向。
1. 自定义控件从WebControl类而不是从Control类派生而来,那么就能够继承到许多附加的属性。
比如高度,宽度,字体和其他样式相关的属性。这些属性可以允许页面开发者自定义控件的外观。当从WebControl类中派生时,应该遵循如下约定:
◎ 包含一个到System.Web.UI.WebControls命名空间的引用。
◎ 不要通过重载Render方法来直接向外输出流中写数据,这是因为WebControl的Render方法实现了一段代码,这段代码向外提供带有样式信息的标签。如果想在控件的标签内提供内容,那么可以用重载RenderContents方法来实现。
2. 为控件选择基类
◎ 如果控件要生成非可视化的元素或者显示给非HTML客户端,那就因该从System.Web.UI.Control类派生。
标签<meta >和<xml>就是非可视化元素显示的例子。
◎ 如果想提供一些在客户端生成可视化界面的HTML,那么就应该从System.Web.UI.WebControls.WebControl派生。
◎ 当想扩展或者修改控件的功能时,应该从一个已经存在的控件派生,比如标签、按钮和文本框。可以任何一个System.Web.UI.WebControls命名空间中的控件或者自定义控件派生。但是不要从System.Web.UI.HtmlControls命名控件中的控件派生。
理解这部分,我们最好来看看WebContorl中Render方法的实现。
protected overide void Render(HtmlTextWriter writer){
RenderBeginTag(writer);
RenderContents(writer);
RenderEndTag(writer);
}
由此可见,WebControl中的Render已经被格式化了的。其中,RenderBeginTag表示标签的开始,如:writer.RenderBeginTag("<H2>") writer.RenderEndTag()即可表示包含在<H2></H2>
再来看看WebControl中的RenderContents实现代码:
protected virtual void RenderContents(HtmlTextWriter writer){
//可以看到RenderContents方法回调了基类的Render方法
base.Render(writer)
}
综上,当想要生成Web控件标签中的内容时,需要重载RenderContents方法。
- ASP.NET自定义控件开发点滴(一)
- ASP.NET自定义控件开发点滴
- ASP.NET自定义控件组件开发(一)
- ASP.NET自定义控件开发示例(一)
- ASP.NET自定义控件开发示例(一)
- 自定义asp.net控件开发之(一)-显示控件内容
- Asp.net Mvc开发体会点滴 一
- Asp.net Mvc开发体会点滴 一
- 开发asp.net自定义控件
- 开发asp.net自定义控件
- 开发asp.net自定义控件
- 开发asp.net自定义控件
- 开发asp.net自定义控件
- ASP.NET控件开发初探(一)
- asp.net控件开发(一)-显示控件内容
- asp.net控件开发(一)-显示控件内容
- 利用ASP.NET 2.0创建自定义Web控件(一)
- 自定义asp.net控件分析 (一)
- D-Day +3 of .NET 3天之后,终于有了自己的网站!!http://www.vstoo.com/flyshufeman
- 怎样配置vc的环境来编译驱动
- Linux下部署应用例子
- 文件系统mount的过程
- 中国的开源路在何方?
- ASP.NET自定义控件开发点滴(一)
- 绑定处理器至对象
- Asp.net服务器控件编程(2) 来做个热身运动吧
- 在ATL中实现窗口
- 澄清display:inline;与float:left;的用途
- 极品:蓝丽网 - Vml图像画板.2003 web上的PhotoShop
- 第17届Jolt大奖名单
- 用OpenSSL命令行生成证书文件
- Windows内部原理的重要概念