asp.net控件开发技巧(2)关闭基类不必要的功能
1.关闭容器
Control类有Controls集合属性,即继承Control类的控件都是一个容器控件,asp.net控件内置的有PlaceHolder控件,其只继承自Control类,什么也没做。但所有控件都是继承自Control类的。如一个label控件,照样可以当容器使用.
有些控件则不需要这个功能,如Literal控件,只输出纯文字,不允许添加子控件
很简单,重写CreateControlCollection方法,返回EmptyControlCollection空集合
{
return new EmptyControlCollection(this);
}
2.禁用属性
如SqlDataSourceControl控件,其继承自DataSourceControl,DataSourceControl类则继承自Control类,DataSourceControl 不需要呈现东西,自然不需要样式,所以像SkinID,EnableTheming等属性则不需要使用。同时也可以用new关键字和一些元数据禁用掉像WebControl类的一些公共属性。有时候你确实不需要这些东西,或者是将这些属性给子标签用也可以。
/// <excludetoc/>
[Bindable(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
new public System.Drawing.Color BorderColor
{
get
{
return new System.Drawing.Color();
}
}
总结:有时候继承下来的并不是你所需要的,所以灵活的重写基类的方法和属性是非常有必要的,而且有时候还必须这么做
asp.net控件开发技巧(2)关闭基类不必要的功能相关推荐
- 【转】Asp.net控件开发学习笔记整理篇 - WebControl基类
最近一直在做MVC项目,对于WEBFORM 好像快忘记了.周末无聊,顺带看看他人的笔记.再次温习下. 复习大纲: 导航.页面生命周期及其它导论 一.服务器控件生命周期 二.控件开发基础 三.Asp.n ...
- 今天你写控件了吗?----ASP.net控件开发系列
今天你写控件了吗?----ASP.net控件开发系列之开篇 早段时间,同事之间很流行打CS,所以那段时间的问候变成了"今天你杀XX了吗?" 控 件开发也许是程序员最能发掘自己创造力 ...
- 一起谈.NET技术,asp.net控件开发基础(18)
本篇继续上篇的讨论,可能大家已经在使用asp.net2.0了,DataSource属性不再使用,而是跟数据源控件搭配使用.现在讨论的绑定技术都是基于1.1版本,先熟悉一下,本质上是一样的,这样一步步的 ...
- 一起谈.NET技术,asp.net控件开发基础(20)
上面我们讨论了数据绑定控件的做法,但都未涉及到asp.net2.0中数据源控件的用法,让用惯了数据源控件的人可能感觉不适应.这次我们就开始讨论在asp.net2.0中,我们该如何重新定义数据绑定控件. ...
- 今天你写控件了吗?----ASP.net控件开发系列之(一)开篇
今天你写控件了吗?----ASP.net控件开发系列之开篇 早段时间,同事之间很流行打CS,所以那段时间的问候变成了"今天你杀XX了吗?" 控件开发也许是程序员最能发掘自己创造力的 ...
- asp.net控件开发基础系列
本系列文章示例源码下载.各位如遇问题,请多查msdn,多利用网络.本人可能没时间一一回复,谢谢你们的支持,希望看到此文的人都能学好控件开发 http://www.cnblogs.com/Clingin ...
- 一起谈.NET技术,asp.net控件开发基础(17)
本篇将开始介绍如自定义数据绑定控件,这里感谢很多人的支持,有你们的支持很高兴.这里首先需要大家熟悉asp.net模板控件的使用,还有自定义模板控件.因为数据绑定控件多是基于模板控件的. 一.回顾 如果 ...
- 一起谈.NET技术,asp.net控件开发基础(13)
1.减轻服务器压力,增加用户体验 服务器功能是强大的,客户端脚本一点也不弱,现在的ajax技术和Atlas技术就是最好的证明,我们总是期待UI有一个好的效果,flash动画给我们带来了很酷的效果,我们 ...
- 一起谈.NET技术,asp.net控件开发基础(9)
写第五篇的时候,我一步步的加上元数据(特性),使得设计时效果更加好,如对复杂属性应用以下特性,使属性浏览器支持扩展/折叠效果,使你更加容易编辑子属性,但接着我又遇到了问题,所以必须去解决 1.认识默认 ...
最新文章
- 教你如何用阿里canal
- 使用netfilter_queue改包笔记
- 漫画:深入浅出 ES 模块
- SAP Spartacus header区域布局设计
- java junit 异常_JUnit:使用Java 8和Lambda表达式测试异常
- OpenGL 入门第一课 视窗以及三角形
- POJ 1753 Flip Game 简单BFS
- laravel 文件
- 自动化测试神器 之 python unittest 断言
- ABAP学习笔记之五-报表的事件 [翱翔云天 ]
- sola病毒doc变exe批量恢复方法
- 知乎周源微信_每周源代码3
- PS快捷键大全,记住这些就够了!
- YOLOv5训练KAIST数据集
- 户籍管理系统的设计与实现(论文+PPT+源码)
- 谈谈那些年玩RPG游戏时的疯狂举动
- anaconda常用命令
- vs好用吗?vs2022下载。
- LwIP常见问题FAQ
- openCV中watershed的使用