下载首页 | 资讯中心 | 文章分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 绿色软件 | 汉化补丁 | 游戏中心 |
文章搜索: 分类 关键字
您的位置:首页编程开发网络编程 → ASP.NET 2.0服务器控件之复合控件概述
ASP.NET 2.0服务器控件之复合控件概述
来源:天极yesky 作者: 加入时间:2006-10-27 访问次数:12 [  ]

  下载本文源代码

  在前面的文章中,主要介绍了服务器控件的基本概念、基本理论,这些内容是构建所有自定义服务器控件的基石。然而,仅仅依靠这些知识还不足以创建出优秀的服务器控件。因为,不同类型的服务器控件具有不同的创建方法,开发人员必须在掌握基本概念和理论之后,掌握不同类型服务器控件的开发方法。本文及其随后几篇文章将详细介绍与创建复合控件相关的内容。本文重点介绍有关复合控件的概念、创建方法等理论,然后,通过一个典型示例加深读者对于复合控件创建方法的理解。

  复合控件概述

  复合控件中的“复合”一词表明该类型控件本质上由多个组件组合而成。同时,复合控件对外暴露的成员对象通常由构成组件的方法和属性提供,并且可能加入一些新的成员。复合控件也可以实现自定义事件,并处理并引发子控件所引起的事件。就功能方面而言,复合控件的功能要比简单组合几个控件的功能要强大的多,而且很多时候具有一定的专项性。例如,ASP.NET 2.0新增的Login控件就是一个典型的复合控件。该控件用户界面由多个单独控件组合而成,并且使用单一的API对控件进行设置和访问。另外,Login控件由于与成员资格等功能集成的原因,因此,其具有快速实现用户登录的功能。

  可能部分有经验的读者在了解了复合控件的基本概念之后会有所疑惑:复合控件与用户控件好像非常相似,那么它们之间有什么区别吗?到底什么时候创建复合控件,什么时候创建用户控件呢?回答这个问题,我们必须从用户控件的基本概念入手进行研究。

  简单而言,用户控件是指在一个项目中,由于同样一些功能模块在多处引用,例如,导航菜单等,可以把这一块代码做成一个用户控件,然后,在需要引用的页面中注册后,直接按控件使用的方式引用,省去了重复编写相同代码的工作。就复合控件与用户控件的区别而言,主要可以总结为以下几点:

  一、复合控件创作的最短设计时支持,用户控件创作的完全设计时支持。在可视化设计器中,创作用户控件与创作ASP.NET页没有差别。

  二、复合控件是以目标为公共语言运行库的面向对象的编程语言,如C#,是用编程方式创作的用户控件是使用ASP.NET页语法和脚本块声明性地创作的。

  三、复合控件是作为程序集(.dll)编译和保持的。用户控件是带有.ascx扩展名的文本文件。

  四、复合控件非常适于创作一般的可重新发布的控件,用户控件适合应用程序特定的功能。

  五、可将复合控件添加到可视化设计器的工具箱中并拖放到页面上,使用时可以在属性框中设计,用户控件只能在HTML中编写。

  通过以上内容,相信读者已经能够基本了解了复合控件。下面介绍一下创建复合控件的实现方法。在这个过程中,开发人员必须把握以下几个要点:

  第一、通常情况,复合控件类必须派生自System.Web.UI.WebControls.CompositeControl类。这一点与ASP.NET 1.x环境下开发复合控件有些不同。在ASP.NET 1.x中,复合控件必须实现System.Web.UI.INamingContainer接口。然而,在ASP.NET 2.0下,复合控件类的基类则发生了变化。下面简单介绍一下CompositeControl类。

  CompositeControl类是一个抽象类,该类可为自定义控件提供命名容器和控件设计器功能,并且可包含全部子控件或使用其他控件功能。CompositeControl类的声明代码如下所示:

public abstract class CompositeControl : WebControl, INamingContainer, ICompositeControlDesignerAccessor


  如上代码所示,CompositeControl类基层自WebControl基类,并且实现INamingContainer和ICompositeControlDesignerAccessor接口。INamingContainer是一个没有方法的标记接口。当控件在实现INamingContainer时,页框架可在该控件下创建新的命名范围,因此,能够确保子控件在控件的分层树中具有唯一的名称。当复合控件公开模板属性,提供数据绑定或需要传送事件到子控件时,这是非常重要的。ICompositeControlDesignerAccessor接口使复合控件设计器可以在设计时重新创建其关联控件的子控件。该接口包含一个需要实现的方法RecreateChildControls。该方法使复合控件的设计器可以在设计时重新创建该控件的子控件。

上一页 [1] [2] [3] [4] 下一页
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间
 热点文章
·AC97声卡驱动下载 AC97万能声卡驱动
·USB万能驱动下载 USB2.0万能驱动下载
·多图+视频!体验比Vista还炫的窗口透明和3D桌面
·《阿猫阿狗大作战online》公测正式开始
·二战即时战略游戏《战争的真相》下载
·图解Windows Vista操作系统安装全过程
·《花木兰》完美流程攻略
·专业级品质 体验Word2007强大图表功能
·AVI视频压缩至尊 WisMencoder试用感受
·声卡驱动 AC97声卡驱动/创新声卡驱动
 推荐文章
·百度MTV视频将可免费下载
·《征途》发测试费 半天送出一千万元!
·利用QQ网吧免费开蓝钻
·没有Fdisk 照样给电脑硬盘分区
·新手入门:Fireworks雪花飘飘迎新春
·韩国射击网游《LAND MASS》首次公开
·上网聊天也需注意安全!聊天软件安全攻略
·黑客攻破SQL服务器系统的十种方法
·Excel旧表翻新技巧!
·三招方法帮你轻松解决Excel数据重复输入
WinXP下载基地 版权所有 Copyright© 2006-2008 WWW.WinXpd.COM, All Rights Reserved. 页面维护: WinXP下载基地(WinXP基D)