我已經閱讀了這篇文章,介紹了何時在創建自定義控件時選擇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