现在又一个表,有三列,一列id,一列名字,一列是上一级id(上一级的目录的id),怎么用递归把它绑定在treeview上

解决方案 »

  1.   

    private void Form1_Load(object sender, EventArgs e)
            {
                string sql = string.Format("select * from flb");
                DataTable dt = SX.mydb.GET_DataTable(sql);
                treeadd(dt,0,(TreeNode)null);
                treeView1.ExpandAll();
            }
               
             /// <summary>
            /// 根据菜单表把权限树加载好
            /// </summary>
            /// <param name="dt">数据源</param>
            /// <param name="Filterid">上级ID</param>
            /// <param name="node">树节点</param>
            private void treeadd(DataTable dt, int Filterid, TreeNode node)
            {
                DataView subView = dt.DefaultView;     
                     subView.RowFilter = "lslb = " + Filterid; //获得ID级别为当前ID的
                      foreach (DataRowView item in subView)
                        {
                          //如果上级ID为0就直接加载树下面
                            if (Filterid == 0)
                            {
                                TreeNode treenodel = new TreeNode();  //创建一个节点
                                treenodel.Text = item["flmc"].ToString(); //节点名称
                                int id =Convert.ToInt32(item["ID"]);    
                                treenodel.Tag = id.ToString();     //节点值
                                treeView1.Nodes.Add(treenodel);  // 如果级别ID为0就直接加到根节点
                                treeadd(dt, id, treenodel); // 递归调用
                            }
                            else
                            {      
                                //不为0就加载传进来的子节点下
                                TreeNode treenodel = new TreeNode();
                                treenodel.Text = item["flmc"].ToString();
                                int id = Convert.ToInt32(item["ID"]);
                                treenodel.Tag = id.ToString();
                                node.Nodes.Add(treenodel);  //把节点加入到当前节点下,
                                treeadd(dt, id, treenodel); 
                            }
                       }