我已经阅读了这一点,它解释了在创建自定义控件时何时选择Web Control vs. Control,但这还不够。我已经看到自定义控件从它们向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的唯一原因是你想使用他们的样式功能吗?我只是想用stringbuilder输出字符串,所以我不关心那些东西。我更喜欢直接使用无表格设计和字符串来形成我的控件呈现的HTML。
答案 0 :(得分:10)
<强>控制强>
从Control类派生允许我们的控件利用Control类提供的呈现方法,以及ViewState的使用。
<强>的WebControl 强>
WebControl类派生自Control类。但是,如果我们从WebControl派生自定义控件,我们可以免费支持我们控件的许多视觉方面,如字体大小,CSS类,背景颜色等。
我应该从哪个班级派生出来?
当您创建需要很少或不需要UI的自定义控件时,您应该从Control类派生。如果您的控件确实需要大量的UI支持,那么您应该从WebControl派生。
来自:http://dotnetslackers.com/articles/aspnet/ASPNETCustomControlsPart1.aspx
答案 1 :(得分:2)
使用它不会花费太多。试一试,看看它是否会引起任何问题。
答案 2 :(得分:0)
那么,你有问题要问吗?我认为这两者之间的差异在MSDN文章中得到了很好的解决。