我已经阅读了这篇文章,介绍了何时在创建自定义控件时选择Web Control vs. Control的情况,但这还不够。我看到自定义控件从两者都继承,当他们都出售的东西到用户界面。继承自控制与Web控制
http://msdn.microsoft.com/en-us/library/yhzc935f.aspx
“如果你控制呈现的用户界面(UI)元素或客户端上的任何其他可见元素,您应该派生从System.Web.UI.WebControls您的控制.. ::。WebControl的(或派生类)如果控件呈现浏览器中不可见的元素,例如隐藏元素或元素,请从System.Web.UI .. ::。Control派生控件。来自Control并添加了与样式相关的属性,如Font,ForeColor和BackColor。此外,从WebControl派生的控件参与了ASP.NET的主题功能,而无需任何额外的工作。“
所以使用WebControl的唯一原因是如果你想使用他们的样式功能?我只想用stringbuilder输出字符串,所以我不关心那些东西。我宁愿直接使用无表设计和字符串来形成我的控件呈现的HTML。
你说的是它提供的属性,如cssClass等? – PositiveGuy 2009-07-13 19:02:09
我的控件正在从我们的CMS系统中通过我们的CMS管理系统输入的我们的数据库表中指定的HTML进行吐出。任何样式都可以在HTML中已经存在,也可以在任何元素(如div)中使用我的自定义控件将此内容包装在幕后逻辑中。所以我没有预见到需要cssClass等,因为我的控制会处理。因此,如果我从Control继承,它仍然会输出一些主要的UI组件,但不需要在运行时对它进行样式设置。 – PositiveGuy 2009-07-13 19:07:38
好的,这是有道理的,是的,我正在谈论CssClass,BackColor,BorderColor等。 – 2009-07-13 19:39:48