/// <summary> /// 添加人員節點(利用TreeNodeCollection) /// </summary> /// <param name="tnc">TreeNodeCollection(TreeView的節點集合)</param> /// <param name="pid_val">父id的值</param> /// <param name="id">數據庫 id 字段名</param> /// <param name="pid">數據庫 父id 字段名</param> /// <param name="text">數據庫 文本 字段值</param> public static void Bind_Leaves(DataTable dt, TreeView tnc, string id, string pid, string text,ContextMenuStrip contextMenuStrip1, ImageList imageList1) { DataView dv = new DataView(dt);//將DataTable存到DataView中,以便於篩選數據 TreeNode tn;//建立TreeView的節點(TreeNode),以便將取出的數據添加到節點中 foreach (DataRowView drv in dv) { tn = new TreeNode();//建立一個新節點(學名叫:一個實例) tn.Name = drv[id].ToString();//節點的Value值,一般為數據庫的id值 tn.Text = drv[text].ToString();//節點的Text,節點的文本顯示 foreach (TreeNode node in tnc.Nodes) { if (node.Name == drv[pid].ToString()){ node.Nodes.Add(tn); tn.ContextMenuStrip = contextMenuStrip1; tn.ImageIndex = tn.SelectedImageIndex = 1; break; } } //tnc.Nodes[drv[pid]].Nodes.Add(tn);//將該節點加入到TreeNodeCollection(節點集合)中 //Bind_Leaves(dt, tn.Nodes, tn.Name, id, pid, text);//遞歸(反復調用這個方法,直到把數據取完為止) } }