Welcome 微信登录

首页 / 网页编程 / ASP.NET / Asp.net 3.5控件和组件开发技术系列—从零开始开发服务器控件(上)

Asp.net 3.5控件和组件开发技术系列—从零开始开发服务器控件(上)2011-07-09 csdn博客 ChengKing本章内容

3.1 选择基类

3.2 控件呈现顺序

3.3 Render呈现控件的几种方式

3.4 AddAttributesToRender方法

3.5 CreateChildControls方法

3.6 INamingContainer接口

3.7 实现复合控件

3.8 常用开发技巧

3.1 选择基类

在开发一个控件之前要先选择控件开发要继承的基类,这些基类封装了控件最基本的功能,可 以提高代码重用性,并且每个基类提供的功能不同,在第1章中已经列出了许多常用基类,如果您 还不大清楚,请看一下第1章。

这里仅谈一谈一般开发基本控件所选择基类的方式。

Control

控件开发基类,所有控件都直接或间接继承该类。提供了各类控件通用属性和方法,如唯一标 志ID属性、可见性Visible等。

该类仅具有控件最基本的属性,扩展灵活性最强。

WebControl

WebControl除了继承了Control的所有属性,还增加了布局、可访问性、外观样式等特性;另外 ,对行为也扩充了好多属性。

Control 和WebControl都用于开发简单控件(即单个控件或非组件控件)。一般在选择控件时 ,如果要开发的控件对外观布局和样式等控件特性要求比较高,则可以选择继承WebControl要方便 得多;反之,选用Control实现即可。如果一定要选用Control实现WebControl的特性也是可以的, 但要自己增加所需的属性,如布局属性width和height,实现起来会较麻烦。

一般在基于Web的系统中用得最多,扩展灵活性也很强。

CompositeControl

此类为ASP.NET 2.0版本时已经支持的一个控件基类。如果把现有控件聚合起来创建一个组合控 件时,可以继承此类,此类默认实现了INamingContainer接口,并且对设计模式表现有较好的支持 。后面会详细介绍其创建方法。一般用于将具有一定功能的多个控件集成为一个控件的情况。

继承现有控件

把具有一定功能的成型控件,如Label,Button,甚至GridView等控件, 作为新控件的基类,并在此基础上扩展或改变(通过override重载其方法实现)其功能,满足业务 需要。

一般情况下开发一个基于Web平台的控件,比较常用的方法是从WebControl继承;本 章主要讲开发一个控件的过程。就以继承WebControl为例来展开讲解。

只要是Web控件,不 管是ASP.NET控件还是第三方厂商控件,最终被解析到客户端的都是标准的HTML标记。也可以这么 说,做一个控件的过程就是根据控件使用者设置控件的属性(简单值或复杂数据源集合等)进行组 织HTML并输出的过程。控件无非就是把一些常用的功能抽象成一个通用的控件,提高重用性,节省 开发时间,这样要比之前开发人员对每个页面用纯HTML开发要好多了。

控件开发可以理解 为组织HTML的过程。当然ASP.NET控件开发技术提供了一些规则,用多种方式有效地组织输出这些 HTML标记,对样式、资源文件封装等也提供了一些帮助类和功能支持,下面我们就一起来看一下组 织HTML标记的方式。