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

来源:互联网 发布:淘宝的全民抢拍没有了 编辑:程序博客网 时间:2024/04/29 09:42

自定义控件中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 服务器控件放在该控件上,并创建这些按钮的事件处理程序。

 

原创粉丝点击