有很多方法可以为Asp.Net构建自定义控件。有些人使用System.Web.UI.WebControls.WebControl
作为基类,其他人使用System.Web.UI.Control
作为其新控件的基类。构建自定义控件:使用WebControl还是Control?
选择其中一个作为基础的原因是什么?
有很多方法可以为Asp.Net构建自定义控件。有些人使用System.Web.UI.WebControls.WebControl
作为基类,其他人使用System.Web.UI.Control
作为其新控件的基类。构建自定义控件:使用WebControl还是Control?
选择其中一个作为基础的原因是什么?
System.Web.UI.WebControls.Webcontrol
派生自System.Web.UI.Control
并增加了对样式(BackgroundColor,Style等)的支持。
Control
默认情况下不具备该支持,您必须通过创建属性并处理Render()
方法中的属性来自行实现。 WebControls
也带有主题和工具箱支持某些共同的属性。
好点!但是我并没有使用主题,所以我会认为我会坚持'Control'类。 – 2011-04-12 09:37:06
控件没有WebControl呈现给响应对象的用户界面。
用户界面可以通过覆盖Render方法在控件上呈现。 – 2011-04-06 18:23:08
是的,但是您需要花费额外的不必要的开发工作。另外,WebControls类引入了我们所有人都期望从我们可见的ASP.NET控件(如Visible属性)中获得的所有那些流行的小功能。 – 2011-04-06 18:27:18
@Ben f。检查:http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspx控制也有一个可见。 – 2011-04-06 18:51:52
当你的控件要在呈现的页面上显示一个UI组件时,你应该使用System.Web.UI.WebControls.WebContro
l,因为它包含了各种管道代码来生成一个UI(尽管仍然需要大量的工作来创建该UI)。
System.Web.UI.Controls
适用于您的控件在呈现的页面上没有UI时(请考虑驻留在工具箱中的一些ASP.NET DataSource控件,可以将它们拖动到页面上,不呈现任何内容并采取行动作为获取数据到具有UI的GridView控件的管道)。
唯一的区别是UI?像BackgroundColor和类似的东西? – 2011-04-06 18:31:37
区别在于WebControls有一个客户端,在解释.aspx页面后在浏览器中呈现UI,而控件对最终用户没有任何可辨别的UI(它们严格在幕后管道代码中) – 2011-04-06 18:35:36
[\ [ASP.NET \]可能的重复在用户控件,服务器控件和自定义控件之间有什么区别?](http://stackoverflow.com/questions/994009/asp-net-what-are-用户控件 - 服务器控件 - 用户之间的差异) – Jacob 2011-04-06 18:25:46
@Jacob这个问题不是重复的,因为它谈论的是基类。不是关于控件类型(ascx和c#控件)。 – 2011-04-06 18:28:34
此外,这两个属于自定义控件的类别,其中.Controls用于UI和.WebControls用于用户界面的控件。 – 2011-04-06 18:29:52