SkyTreeVIEwControl.cs
樹狀列表控件所有的C#代碼就放置在這個文件中。打開這個文件,首先我們看到一條指令
// 此時對程序集使用TagPrefix特性,表示CS_Discovery名稱控件下的WEB控件
// 在ASPX的HTML代碼中默認使用SkyWebControl作為其Html標簽的前綴
[assembly:System.Web.UI.TagPrefix("CS_Discovery" , "SkyWebControl")]
這條指令前面有“assembly:”的前綴,表示這是一個針對程序集的指令,它具有兩個參數,第一個參數為某個名稱控件,第二個參數指定該名稱空間下的所有的Web控件在ASPX的Html源代碼中的標簽前綴,這裡為“SkyWebControl”。
這個文件中定義了3個類型。
SkyTreeVIEwControlBuilder
這個類型是從System.Web.UI.ControlBuilder上派生的。本類型用於對VS.Net的WEB窗體設計器提供支持。
SkyTreeVIEwControlDesigner
這個類型是從System.Web.UI.Design.ControlDesigner 上派生的,用於對VS.Net的WEB窗體設計器提供支持。
SkyTreeVIEwControl
這個類型就是樹狀列表WEB控件了。首先看到它的定義頭。
[System.Web.UI.ControlBuilder( typeof( SkyTreeVIEwControlBuilder ))]
[System.ComponentModel.Designer( typeof( SkyTreeVIEwControlDesigner ))]
[System.Drawing.ToolboxBitmap( typeof( SkyTreeVIEwControl ))]
public class SkyTreeVIEwControl : System.Web.UI.WebControls.WebControl
這個類型是從System.Web.UI.WebControls.WebControl上派生的。它還附加了3個特性,其中 ControlBuilder特性用於指明控件配套的控件創建者類型為SkyTreeViewControlBuilder,Designer特性用於指明控件配套的設計器類型為SkyTreeVIEwControlDesigner,而特性ToolboxBitmap用於指明控件類型在VS.Net的窗體設計器的工具箱中使用什麼樣的圖標。這裡指明使用圖標“”。
本控件定義了Nodes屬性,其代碼為
private SkyTreeNodeList myNodes = new SkyTreeNodeList();
/// <summary>
/// 子節點列表
/// </summary>
[System.ComponentModel.Browsable( false )]
public SkyTreeNodeList Nodes
{
get
{
return myNodes ;
}
set
{
myNodes = value;
}
}