現對該軟件進行詳細說明。
SkyTreeNode.cs
該文件中定義了類型SkyTreeNode,用於表示樹狀列表中的一個節點,其主要代碼如下
/// <summary>
/// 樹狀列表節點對象
/// </summary>
/// <remarks>
/// 本對象表示高性能ASP.Net樹狀列表中的一個節點,每個節點
/// 有個Nodes屬性用於保存子節點,由此可以形成樹狀結構。
/// </remarks>
[System.Serializable()]
[System.Xml.Serialization.XMLType("Node")]
public class SkyTreeNode
{
/// <summary>
/// 初始化對象
/// </summary>
public SkyTreeNode()
{
myNodes = new SkyTreeNodeList(this);
}
private string strID = null;
/// <summary>
/// 節點編號
/// </summary>
/// <remarks>
/// 在生成HTML代碼時,系統會調用XSLT的函數 generate-id() 來生成節點Html
/// 編號,在同一個XML文檔時,自動生成的編號是唯一的不會重復。但當頁面上有
/// 多個樹狀列表或者需要客戶端動態加載節點時則會在不同的XML文檔上調用
/// generate-id() 函數,這會導致節點的Html編號重復,此時需要明確的設置該ID
/// 屬性以確保生成的節點的Html編號不重復。一般可以設置為
/// System.GUID.NewGUID().ToString() 值
/// </remarks>
public string ID
{
get
{
return strID;
}
set
{
strID = value;
}
}
private string strText = null;
/// <summary>
/// 節點文本
/// </summary>
public string Text
{
get
{
return strText;
}
set
{
strText = value;
}
}
private string strIcon = null;
/// <summary>
/// 節點圖標URL地址
/// </summary>
public string Icon
{
get
{
return strIcon;
}
set
{
strIcon = value;
}
}
private string strLink = null;
/// <summary>
/// 節點鏈接地址
/// </summary>
public string Link
{
get
{
return strLink;
}
set
{
strLink = value;
}
}
private string strValue = null;
/// <summary>
/// 節點數值
/// </summary>
public string Value
{
get
{
return strValue;
}
set
{
strValue = value;
}
}
private string strOnClick = null;
/// <summary>
/// 節點點擊事件處理代碼
/// </summary>
public string OnClick
{
get
{
return strOnClick;
}
set
{
strOnClick = value;
}
}
private string strXMLSource = null;
/// <summary>
/// 子節點信息XML來源
/// </summary>
/// <remarks>
/// 當客戶端要動態的加載節點的子節點,則必須要設置該屬性為一個
/// 相對或絕對的URL地址,該地址必須使用一個頁面參數來傳遞該節點的
/// ID屬性。
/// </remarks>
public string XMLSource
{
get
{
return strXMLSource;
}
set
{
strXMLSource = value;
}
}
private SkyTreeNode myParent = null;
/// <summary>
/// 父節點對象
/// </summary>
/// <remarks>
/// Parent屬性不能參與XML序列化和反序列化,否則會出現樹狀節點
/// 循環引用而導致程序結構錯誤,因此使用 XMLIgnore 特性來說明
/// 不參與XML序列化和反序列化。
/// </remarks>
[System.Xml.Serialization.XMLIgnore()]
[System.ComponentModel.Browsable(false)]
public SkyTreeNode Parent
{
get
{
return myParent;
}
set
{
myParent = value;
}
}
private SkyTreeNodeList myNodes = null;
/// <summary>
/// 子節點列表
/// </summary>
/// <remarks>
/// 此處使用XMLArrayItem特性說明Nodes屬性是一個列表,該列表對應
/// 的XML節點下Node名稱的子XML節點對應一個SkyTreeNode類型的對象。
/// </remarks>
[System.Xml.Serialization.XMLArrayItem("Node", typeof(SkyTreeNode))]
public SkyTreeNodeList Nodes
{
get
{
return myNodes;
}
}
}//public class SkyTreeNode