ASP.NET中WEB用户控件和自定义控件

原创 2007年10月13日 16:38:00

 自定义控件中UserControl(用户控件)和CustomControl(自定义控件)的区别

Web用户控件与自定义控件的设计都是为了实现代码的重用.使程序开发者开发时方便快捷,提高开发效率。
虽然Web用户控件与自定义控件的实现都是为了实现代码的重用,但是它们各自具有各自的特点,适合使用在不同场合,开发者开发时要能准确,高效的使用好这两类控件。需从研究两者的区别出发作出合理选择。

 

Web 用户控件易于创建,但它们在高级方案中使用起来可能不太方便。开发 Web 用户控件的方式与开发 Web 窗体页的方式几乎完全相同。与 Web 窗体相似,用户控件可以在可视化设计器中创建,可以使用与 HTML 隔离的代码来编写,并且可以处理执行事件。但是,由于 Web 用户控件在运行时动态地进行编译,所以不能将它们添加到工具箱中,而且它们在添加到页面上时由简单的占位符标志符号来表示。如果您习惯于完全的 Visual Studio .NET 设计时支持(包括“属性”窗口和“设计”视图预览),这将会使 Web 用户控件使用起来更不方便。此外,在应用程序之间共享用户控件的唯一方式是将一个单独的副本放入每个应用程序,因此如果对该控件作出了更改,将需要进行比较多的维护。

Web 自定义控件是编译的代码,这使得 Web 自定义控件更易于使用但更难于创建;Web 自定义控件必须使用代码来创建。一旦创建该控件,那么,您就可以将其添加到工具箱中,并在具有完全“属性”窗口支持和 ASP.NET 服务器控件的其他所有设计时功能的可视化设计器中显示该控件。此外,还可以在全局程序集缓存中安装 Web 自定义控件的单个副本,并在应用程序之间共享该副本,这将使维护变得更容易。有关更多信息,请参见全局程序集缓存。

如果您的控件包含大量静态布局,用户控件则可能是较佳的选择。如果您的控件主要是动态生成的(例如数据绑定表的行、树视图的节点或选项卡控件的选项卡),自定义控件则可能是较佳的选择。

下表概述了这两种类型之间的主要区别:

Web 用户控件 Web 自定义控件
易于创建 难于创建
 为使用可视化设计工具的使用者提供有限的支持 为使用者提供完全的可视化设计工具支持
每个应用程序中需要控件的一个单独副本  仅在全局程序集缓存中需要控件的单个副本
不能添加到 Visual Studio 中的工具箱 可以添加到 Visual Studio 中的工具箱
适用于静态布局  适用于动态布局

(注:用户控件扩展名为 .ascx 创建及使用与.aspx类似有相应页面文件和后台CS文件,自定义控件扩展名为.CS为单独一文件)

一个 Web 用户控件与一个完整的 Web 窗体页相似,它们都包含一个用户界面页和一个代码隐藏文件。该用户界面页在以下方面与 .aspx 文件不同: 用户控件扩展名必须为 .ascx。
用户控件中不包含 <HTML>、<BODY> 和 <FORM> 元素(这些元素必须位于宿主页中)。
在其他任一方面,用户控件都与 Web 窗体页相似。在用户控件上可以使用与标准 Web 窗体页上相同的 HTML 元素和 Web 控件。例如,如果您要创建一个将用作工具栏的用户控件,则可以将一系列“按钮”(Button) Web 服务器控件放在该控件上,并创建这些按钮的事件处理程序。

 

WEB用户控件和WEB自定义控件的区别

很初学者对WEB用户控件和WEB自定义控件的区别不是很了解,经常把它们混为一谈,这两种控件之间的主要区别在于设计时的易创建性与易用性。Web 用户控件易于创建,但它们在高级方案中使用起来可能不太方便。...
  • xueying519
  • xueying519
  • 2007年04月08日 20:50
  • 468

asp.net WebForm之用户自定义控件

关于用户自定义控件,想必大家已经非常熟悉了。虽然说经常用过,但是只是简单的使用而已。在这里再次总结一下Asp.net中的UserControl,以便下次使用时 能够得心应手。本文将会介绍以下内容...
  • ydm19891101
  • ydm19891101
  • 2016年05月11日 09:45
  • 2677

用户控件&自定义控件----.Net再学

开始学习.Net到现在两年了快,开始学习java 也有大半年了,中间做项目,又开始.Net的学习。这次做.Net项目,后台代码敲的不是太多,重点放在了UI上,这也是这篇博客要写的内容有关,做UI就少不...
  • wangyongxia921
  • wangyongxia921
  • 2015年01月30日 22:42
  • 1257

Asp.net 用户控件添加自定义事件asp.net

Asp.net 用户控件添加自定义事件asp.net
  • Sunqlive
  • Sunqlive
  • 2016年09月07日 11:17
  • 869

ASP.NET总结——Web自定义控件

北大青鸟ASP.NET的视频,向我们介绍了用户控件和自定义控件。        先简单说一下这两者的明显的区别。 用户控件的扩展名为.aspx;自定义控件的扩展名为.dll。用户控件使用时,需...
  • u010924834
  • u010924834
  • 2014年09月15日 15:58
  • 2090

3.为自定义控件添加属性

3.为自定义控件添加属性 原文请看我博客:http://clzf.co/blog.php?id=3 前面"废话"了两篇 现在开始慢慢的踏入自定义控件开发的主题 首先来说说属性 对于一个控件来说属...
  • crystal_lz
  • crystal_lz
  • 2014年03月28日 20:04
  • 11405

asp.net向自定义控件传递参数-两个例子

在控件.ascx.cs声明控件属性           private int _ClassID = 0;           public int ClassID           {  ...
  • lishimin1012
  • lishimin1012
  • 2014年06月27日 21:14
  • 4867

强大的ASP.NET控件----用户控件对战自定义控件

用户控件,用户控件的属性 自定义控件,如何使用自定义和用户控件,如何制作自定义控件和用户控件...
  • u010073895
  • u010073895
  • 2014年11月08日 21:34
  • 2653

WPF之路——用户控件对比自定义控件(UserControl VS CustomControl)

在WPF中,概念上来说用户自己制作的控件有两种:用户控件和自定义控件。但是这两种控件之间有什么区别?这篇文章中列出了他们各自的特点,以便在项目中选择选择合适的控件类型。 用户控件(组合) ...
  • qianshen88
  • qianshen88
  • 2013年11月28日 09:35
  • 9262

【asp.net】用户控件&自定义控件

在原来的学习中,从vb到asp.net我们都接触了很多的控件,这些控件为我们的程序开发提供了很多的便利,在程序开发中,许多功能或代码都需要重复的使用,我们在牛腩的时候学习了模板方法和重复代码添加工具箱...
  • u013046597
  • u013046597
  • 2015年08月08日 16:45
  • 1436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET中WEB用户控件和自定义控件
举报原因:
原因补充:

(最多只允许输入30个字)