5

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

4

3 回答 3

10

控制

派生自 Control 类允许我们的控件利用 Control 类提供的呈现方法以及 ViewState 的使用。

网络控制

WebControl 类派生自 Control 类。但是,如果我们从 WebControl 派生自定义控件,我们可以免费支持控件的许多视觉方面,例如字体大小、CSS 类、背景颜色等。

我应该从哪个类派生?

当您创建需要很少或不需要 UI 的自定义控件时,您应该从 Control 类派生。如果您的控件确实需要广泛的 UI 支持,那么您应该从 WebControl 派生。

来自:http ://dotnetslackers.com/articles/aspnet/ASPNETCustomControlsPart1.aspx

于 2009-07-13T18:59:37.120 回答
2

WebControl 不会呈现表格或类似的东西,除非你告诉它。它所拥有的是大多数用户期望从使用 UI 呈现的控件中获得的样式功能。

使用它不会花费你太多。试一试,看看它是否会给您带来任何问题。

于 2009-07-13T18:59:28.273 回答
0

那么,你有问题要问吗?我认为两者之间的差异在 MSDN 文章中得到了很好的解决。

于 2009-07-13T19:04:24.957 回答