簡介
TreeView 是一個 ASP.NET 伺服器控制項,可以產生用於顯示分層資料的使用者介面。與其他 Microsoft Internet Explorer WebControl 一樣,TreeView 控制項也會根據瀏覽器的類型來發送 HTML。在低級瀏覽器中,TreeView ASP.NET 伺服器控制項發送的頁面內容是 HTML 3.2 格式的,而在進階瀏覽器中,HTML 頁面還使用了 DHTML 行為,DHTML 行為是定義了自訂元素的用戶端組件。對於 WebControl,進階瀏覽器指 Internet Explorer 5.5 或更高版本,低級瀏覽器指 Internet Explorer 5.01 或更低版本,或者是 Internet Explorer 以外的其他瀏覽器。
TreeView 元素
您可以結合使用一個或多個由用戶端和伺服器端的 TreeView 組件支援的以下元素來建立 TreeView。
元素名稱 |
說明 |
TreeView |
定義一個 TreeView。 |
TreeNodeType |
定義一個節點類型,適用於 TreeView 中的一個或一組節點。 |
TreeNode |
在 TreeView 中建立一個節點。 |
一些屬性1、autoselect=”false”:當訪問者在treeview控制項中對節點進行定位時,可以使用鍵盤上的箭頭來進行定位。屬性值為“false“,則不允許這樣做。2、Showplus=”true”:當兩個節點收到一起的時候,你可以顯示一個加號(+),訪問者就知道這個節點可以展開,該屬性值為“true“將使用加號,否則不使用。3、Showlines=”true”:在一個treeview控制項中的兩個節點之間,可以顯示一些線長,為”true”顯示。4、Expandlevel=2:用來定義treeview控制項的階層展開的層級數。5、navigateurl:點擊節點時的跳轉網址
下面通過一個例子來說明
本例子中有三層樹形結構,分別放在三個表中,我們通過while 迴圈 順序讀取所有資料,建立treenode
protected void Page_Load(object sender, EventArgs e)
{
tv.Nodes.Clear();
OracleConnection ocon = ado.oraconnecttion();
ocon.Open();
OracleCommand ocmd = new OracleCommand("select id,des from S_MODULE order by id",ocon);
OracleDataReader oda = ocmd.ExecuteReader();
while (oda.Read())//第一層迴圈
{
TreeNode tn1 = new TreeNode();//定義節點
tn1.Text = oda[1].ToString();//節點屬性設定
tn1.Target = "NodeEdit";//連結目標
tn1.NavigateUrl = "MODULEEdit.asp?MODULEID=" + oda[0].ToString();//連結地址
OracleCommand ocmd1 = new OracleCommand("select id,des from S_TASKTYPE where MODULE='" + oda[0].ToString() +"' order by id",ocon);
OracleDataReader oda1 = ocmd1.ExecuteReader();
while(oda1.Read())//第二層迴圈
{
TreeNode tn2=new TreeNode();//定義第二存節點
tn2.Text=oda1[1].ToString();
tn2.Target = "NodeEdit";
tn2.NavigateUrl = "TASKTYPEEdit.asp?TASKTYPEID=" + oda1[0].ToString();
OracleCommand ocmd2 = new OracleCommand("select ID,DES from S_NODE where TASKID='"+oda1[0].ToString()+"' order by id",ocon);
OracleDataReader oda2 = ocmd2.ExecuteReader();
while (oda2.Read())//迴圈第三層
{
TreeNode tn3 = new TreeNode();//第三層屬性設定
tn3.Text = oda2[1].ToString();
tn3.Target = "NodeEdit";
tn3.NavigateUrl = "NodeEdit.asp?NodeID=" + oda2[0].ToString();
tn3.ImageUrl = "image/page.png";//設定圖形
tn2.ChildNodes.Add(tn3);//把第三層設定為第二層的子層
}
oda2.Close();
tn1.ChildNodes.Add(tn2);//把第二層設定為第一層的子層
}
oda1.Close();
tv.Nodes.Add(tn1);把第一層節點加入treeview 中
}
oda.Close();
ocon.Close();
}//這樣經過一次的迴圈就可以把第一節點的所有子節點全部列出了,即"綜合辦公"中所有內容
不知道還有沒有其他方法和想法,希望各位多出出注意