| 屬性 | 型別 | 說明 |
ID | string | 節點唯一識別碼,建議 Guid.NewGuid().ToString(),避免多樹/動態載入時 HTML ID 衝突 |
Text | string | 顯示文字 |
Icon | string | 圖示 URL |
Link | string | 導航連結 |
Value | string | 自訂資料值 |
OnClick | string | 客戶端點擊腳本 |
XMLSource | string | 動態載入子節點的 XML 來源 URL (需傳遞節點 ID 參數) |
Parent 屬性與 XML 序列化斷環
[XmlIgnore]
[Browsable(false)]
public SkyTreeNode Parent { get; set; }
XmlIgnore:防止 XML 序列化遞迴無限迴圈 (Parent → Nodes → Node → Parent...)。
Browsable(false):隱藏設計器屬性格。
Nodes 集合與 XML 序列化對應
[XmlArrayItem("Node", typeof(SkyTreeNode))]
public SkyTreeNodeList Nodes { get; }
XmlArrayItem 指定集合元素 XML 標籤名為 <Node>,型別為 SkyTreeNode。
- 配合
XmlType("Node") 類別層級屬性,完整定義 XML 結構。
類別層級序列化屬性
[Serializable]
[XmlType("Node")]
public class SkyTreeNode { ... }
Serializable:支援二進位序列化 (ViewState/Session)。
XmlType("Node"):XML 序列化時元素名為 Node。
建構函式初始化
public SkyTreeNode() {
myNodes = new SkyTreeNodeList(this); // 傳入 this 建立 OwnerNode 關聯
}
XML 輸出範例
a1b2c3
Root
/icons/folder.png
#
100
alert('clicked')
/api/nodes?parent=a1b2c3
...
...
注意:Parent 不出現在 XML 中,避免循環參考。
- 上一篇文章: C# 發現之旅:高效能 ASP.NET TreeView 控制項 (上) — SkyTreeNodeList 強型別集合實作
- 下一篇文章: C#發現之旅:高性能ASP.NET樹狀列表控件開發詳解(六)——XML與XSLT設計
Copyright ©
程式碼之家 All Rights Reserved