Example #1
0
    private void AddTree(int Pid, TreeNode PNode)
    {
        DataSet   ds = conn.DsSql("select code,name,pcode,group_code from department");
        DataTable dt = ds.Tables[0];

        if (dt.Rows.Count > 0)
        {
            DataView dv = new DataView(dt);
            //过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
            dv.RowFilter = "[pcode] = " + Pid;
            Debug.WriteLine(cnt++.ToString());
            //循环递归
            foreach (DataRowView Row in dv)
            {
                //声明节点
                TreeNode Node = new TreeNode();
                //绑定超级链接(点击部门跳转到员工页面,员工列表由部门编码group_code字段条件控制)
                Node.NavigateUrl = String.Format("javascript:show('{0}')", Row["group_code"].ToString());
                //开始递归
                if (PNode == null)
                {
                    //添加根节点
                    Node.Text = Row["name"].ToString();
                    TreeView1.Nodes.Add(Node);
                    Node.Expanded = true;                               //节点状态展开
                    AddTree(Int32.Parse(Row["code"].ToString()), Node); //再次递归
                }
                else
                {
                    //添加当前节点的子节点
                    Node.Text = Row["name"].ToString();
                    PNode.ChildNodes.Add(Node);
                    Node.Expanded = true;                               //节点状态展开
                    AddTree(Int32.Parse(Row["code"].ToString()), Node); //再次递归
                }
            }
        }
    }