ASP.NET 內建豐富控件,但業務總有客製化需求。本系列首篇確立控件開發的三大核心知識點,為後續深入奠基。
Visible、EnableViewState、Controls 集合、Render 等核心成員。必須繼承此類(直接或間接)。RenderBeginTag、AddAttribute、Write 等強型別方法,務必熟練掌握。建議直接繼承 WebControl(標準控件基類),獲得樣式、工具提示、TabIndex 等 20+ 實用屬性,避免從零建構。
public class MyControl : WebControl
{
protected override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.Write("Hello, Control!");
writer.RenderEndTag();
}
}
所有控件最終都透過 Render 輸出 HTML,這是必須重寫的關鍵方法。
透過 System.ComponentModel 命名空間的屬性標記:
[Category("Appearance")]
[Description("控件顯示的標題文字")]
[DefaultValue("預設標題")]
public string Title { get; set; } = "預設標題";
Category:決定屬性視窗分類(Appearance、Behavior、Layout 等)。Description:底部說明列顯示的文字。DefaultValue:設計器序列化判斷依據,預設值不寫入標記。良好的中繼資料能大幅提升控件在 Visual Studio 中的易用性,是專業控件的標配。