首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 發現之旅:高效能 ASP.NET TreeView 控制項 (上) — SkyTreeNode 節點類別完整定義與 XML 序列化設計

     編輯:關於C語言

SkyTreeNode 核心屬性

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 中,避免循環參考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
屬性型別說明
IDstring節點唯一識別碼,建議 Guid.NewGuid().ToString(),避免多樹/動態載入時 HTML ID 衝突
Textstring顯示文字
Iconstring圖示 URL
Linkstring導航連結
Valuestring自訂資料值
OnClickstring客戶端點擊腳本
XMLSourcestring動態載入子節點的 XML 來源 URL (需傳遞節點 ID 參數)