asp.net - 继承自 Control 与 Web Control

标签 asp.net custom-controls custom-server-controls

我已经阅读了这篇文章,其中解释了在创建自定义控件时何时选择 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/

相关文章:

c# - asp.net,使用服务器证书制作httpwebrequest C#

wpf - WPF-Grid 如何实现 SharedSizeGroup 行为?

c# - 如何在标记中添加项目以供用户控制?

asp.net - 使用自定义 WebControl 作为面板的 DefaultButton

asp.net - ASP :hyperlink href won't show up even though i populate navigateurl

c# - 在 asp .net 中返回上一页的超链接

asp.net - 展示如何将 jQuery 与 ASP.NET 结合使用的最佳书籍

ios - UIAlertController 中的自定义 View

asp.net - 有没有比 FindControl() 更好的方法来访问 ITemplate 中的控件?

asp.net 服务器控件 - 避免添加多个 javascript