用户控件、服务器控件和自定义控件之间有啥区别?
Posted
技术标签:
【中文标题】用户控件、服务器控件和自定义控件之间有啥区别?【英文标题】:What are the differences between User Controls, Server Controls & Custom Controls?用户控件、服务器控件和自定义控件之间有什么区别? 【发布时间】:2010-11-02 21:37:34 【问题描述】:在最近的一次采访中,我以为我对这个问题有合理的答案,但我轰炸了它。 :(
三者之间的主要区别是什么? 如果上一个项目符号的答案不明显,您什么时候会选择一个而不是另一个?【问题讨论】:
【参考方案1】:用户控件是使用设计器在 Web 项目中构建的控件。它们通常只对 Web 应用程序私有(尽管有一些方法可以使它们对其他项目可用)。
服务器控件是也称为 Web 控件的控件。这些是可重复使用的控件,无需设计人员的帮助即可呈现其 html,它们是在与 Web 应用程序分开的程序集中创建的,适用于将在许多不同的 Web 应用程序中使用的控件
复合控件是 Web 控件的子类型,是由其他 Web 控件组成(组合)的控件。
除了由您或您的团队自定义构建的控件之外,我从未听说过自定义控件意味着其他任何东西。它可以包括用户、Web 或复合控件。
【讨论】:
【参考方案2】:用户控件是一个部分网页,其创建方式与 ASP.NET 中的任何其他网页相同,只是它具有 .ASCX 扩展名,并且可以嵌入到您的其他 ASPX 页面中。
用户控件在使用它们的网页中注册,如下所示:
<%@ Register TagPrefix="UC" TagName="TestControl" Src="test.ascx" %>
然后在要使用它们的网页中声明它们,如下所示:
<UC:TestControl id="Test1" runat="server"/>
自定义控件是在服务器上执行、公开对象模型和呈现标记文本(如 HTML 或 XML)的已编译代码组件,就像普通的 Web 窗体或用户控件一样。自定义控件是用 C# 或 VB 编写的,并且是从类中派生的
System.Web.UI.WebControls.WebControl
服务器控件是在服务器上执行并将标记呈现给浏览器的控件。用户控件和自定义控件都是服务器控件的示例。
http://support.microsoft.com/kb/893667
【讨论】:
用户控件不是网页,也是编译的。 一个用户控件是一个网页块。 乔希,我认为您正在考虑自定义控件。见support.microsoft.com/kb/893667以上是关于用户控件、服务器控件和自定义控件之间有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章