有四个字段第一个是ID号第二个是深度第三个是父节点的号第四个是节点名
我要怎么做成无限级的树呢!
有资料给资料的!有实例最好的

解决方案 »

  1.   

    去,www.51aspx.com 上搜,很多的,原理都是一样的
      

  2.   

    //绑定方法
     private void BindData()
        {
           //创建根节点
            TreeNode root = new TreeNode();
            root.Text = "权限设置";
            root.Value = "0";
            this.TreeView1.Nodes.Add(root);
            CreateTree(0, root);   //创建树的方法       
        }//创建树地方法
         private void CreateTree(int Fatherid, TreeNode FatherNode)
        {
            DataRow[] drs = GetDataRow(Fatherid);
            if (drs != null)
            {
                for (int i = 0; i < drs.Length; i++)
                {
                    TreeNode t = new TreeNode();
                    t.Text = drs[i]["FuncName"].ToString();   //节点名
                    t.Value = drs[i]["ID"].ToString();   //节点ID
                    t.NavigateUrl = Convert.ToString(drs[i]["Url"]);   //导航链接地址
                    t.Target = "right";                FatherNode.ChildNodes.Add(t);
                    int id =Convert.ToInt32(drs[i]["ID"].ToString());
                    CreateTree(id, t);
                }
            }
        }   //得到所有数据放入缓存
        private DataRow[] GetDataRow(int fatherid)
        {
            DataRow[] drs = null;
            object obj = Cache["MyTreeData"];
            if (obj != null && obj.ToString() !="")
            {
                //可以处理
                DataSet ds = obj as DataSet;
                drs = ds.Tables[0].Select(string.Format(" Fatherid={0}", fatherid));  //父节点ID        }
            else
            {
                //取库里取
                DataSet ds = r.SelectFunctionData("");
                if (ds != null && ds.Tables[0].Rows.Count != 0)
                {
                    Cache["MyTreeData"] = ds;
                    drs = ds.Tables[0].Select(string.Format(" Fatherid={0}", fatherid));
                }
            }        return drs;
        }