TreeView控制項
TreeView控制項顯示Node對象的等級體繫結構,每個Node對象包含了一個標籤和可選的點位元影像。TreeView控制項通常用於顯示文檔頭、索引中的條目、磁碟上的檔案和目錄或者可以顯示為等級結構的各種其他資訊。
在建立了TreeView控制項之後,你可以設定Node對象的屬性和調用其方法增加、刪除或者操縱Node對象。可以編程展開或收縮Node節點以便顯示或隱藏所有的子節點。事件Collapse, Expand和NodeClick提供了在程式中使用的功能。
使用Root, Parent, Child, FirstSibling, Next, Previous和LastSibling屬性可以檢取Node對象的引用,從而在程式碼中瀏覽節點樹。在樹的根部,選擇則跳到樹頭,如果有必要就滾動視窗。
TreeView控制項的外觀有幾種選擇。Node對象可以表現為文本,點位元影像,線條和加減號的8種組合之一。
TreeView控制項使用ImageList屬性指定的ImageList控制項儲存在Node對象中使用的點位元影像和表徵圖。一個TreeView控制項一次只能使用一個ImageList。這意味著當TreeView控制項的Style屬性設定為顯示映像的風格時,TreeView控制項中的每個成員旁邊都顯示一個等大的映像。
Treeview 如何從資料庫中綁定呢。代碼如下:
//得到根節點
public void bindTree(int tableid)//從資料庫中擷取一個表的id, {
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TreeviewConnectionString"].ConnectionString)) //串連資料庫
{
SqlCommand com = new SqlCommand("select * from table where tableid=" + tableid, conn);
SqlDataAdapter da = new SqlDataAdapter(com);
da.Fill(ds);
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.PopulateOnDemand = false;
node.Text = ds.Tables[0].Rows[i]["tablename"].ToString();
node.Value = ds.Tables[0].Rows[i]["id"].ToString();
node.Target = "frmright";
node.NavigateUrl = ds.Tables[0].Rows[i]["tableurl"].ToString();
TreeView1.Nodes.Add(node);
node.Expanded = false;
node.SelectAction = TreeNodeSelectAction.Expand;
bindChildnodes(node);//調用子節點的方法
}
}
//得到子節點
public void bindChildnodes(TreeNode rootnode) {
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TreeviewConnectionString"].ConnectionString))
{
SqlCommand com = new SqlCommand("select * from table where tableid=" + rootnode.Value, conn);
SqlDataAdapter da = new SqlDataAdapter(com);
da.Fill(ds);
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.Text = ds.Tables[0].Rows[i]["tablename"].ToString();
node.Value = ds.Tables[0].Rows[i]["id"].ToString();
node.Target = "frmright";
node.NavigateUrl = ds.Tables[0].Rows[i]["tableurl"].ToString();
rootnode.ChildNodes.Add(node);
bindChildnodes(node);
}
}
最後在頁面載入中調用得到根節點的方法即:bindTree(0)。