組件層級 TagPrefix 指示詞
[assembly: TagPrefix("CS_Discovery", "SkyWebControl")]
- 註冊命名空間
CS_Discovery 下所有 Web 控制項,ASPX 預設標籤前綴為 SkyWebControl。
- 使用者拖曳工具箱控制項時,自動產生
<SkyWebControl:TreeView ...>。
三大輔助類別
| 類別 | 繼承自 | 用途 |
SkyTreeViewControlBuilder | ControlBuilder | 設計器剖析標籤內容、子控制項處理 |
SkyTreeViewControlDesigner | ControlDesigner | 設計器介面、智慧標籤、預覽渲染 |
SkyTreeViewControl | WebControl | 核心控制項邏輯 |
核心控制項屬性裝飾
[ControlBuilder(typeof(SkyTreeViewControlBuilder))]
[Designer(typeof(SkyTreeViewControlDesigner))]
[ToolboxBitmap(typeof(SkyTreeViewControl))] // 工具箱圖示
public class SkyTreeViewControl : WebControl { ... }
Nodes 屬性實作
private SkyTreeNodeList myNodes = new SkyTreeNodeList();
[Browsable(false)]
public SkyTreeNodeList Nodes {
get { return myNodes; }
set { myNodes = value; }
}
- 內部欄位初始化為空集合,避免 NullReference。
Browsable(false) 防止設計器嘗試序列化複雜物件圖。
設計器支援關鍵點
ControlBuilder 處理巢狀標籤 (如 <Nodes><Node .../></Nodes>)。
ControlDesigner 提供設計時預覽、智慧標籤動作 (如「展開所有節點」)。
ToolboxBitmap 指定 16x16 圖示,嵌入資源或同目錄圖檔。
- 上一篇文章: C# 發現之旅:高效能 ASP.NET TreeView 控制項 (上) — 核心屬性完整定義與說明
- 下一篇文章: C# 發現之旅:高效能 ASP.NET TreeView 控制項 (上) — SkyTreeNodeList 強型別集合實作
Copyright ©
程式碼之家 All Rights Reserved