我已经阅读了这篇文章,其中解释了在创建自定义控件时何时选择 Web 控制与控制,但这还不够。我已经看到自定义控件在它们都将内容渲染到 UI 时继承自任一个。
http://msdn.microsoft.com/en-us/library/yhzc935f.aspx
“如果您的控件在客户端呈现用户界面 (UI) 元素或任何其他可见元素,您应该从 System.Web.UI.WebControls..::.WebControl(或派生类)派生您的控件。如果您的控件呈现在浏览器中不可见的元素,例如隐藏元素或元元素,从 System.Web.UI..::.Control 派生您的控件。WebControl 类从 Control 派生并添加与样式相关的属性,例如作为 Font、ForeColor 和 BackColor。此外,从 WebControl 派生的控件参与了 ASP.NET 的主题功能,而无需您做任何额外的工作。”
所以使用 WebControl 的唯一原因是您是否想使用它们的样式功能?我将最终使用字符串生成器输出字符串,所以我不在乎那些东西。我更喜欢直接使用无表设计和字符串来形成我的控件无论如何呈现的 HTML。
最佳答案
控制
从 Control 类派生使我们的控件可以利用 Control 类提供的渲染方法,以及 ViewState 的使用。
网络控制
WebControl 类派生自 Control 类。但是,如果我们从 WebControl 派生自定义控件,我们将获得对控件许多视觉方面的免费支持,例如字体大小、CSS 类、背景颜色等。
我应该从哪个类派生?
当您创建一个几乎不需要 UI 的自定义控件时,您应该从 Control 类派生。如果您的控件确实需要广泛的 UI 支持,那么您应该从 WebControl 派生。
发件人:http://dotnetslackers.com/articles/aspnet/ASPNETCustomControlsPart1.aspx
关于asp.net - 继承自 Control 与 Web Control,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121401/