这个代码书写确实不规范,但由于本身功能能很见到,所以还是很好理解啊:
Bind(TreeNodeCollection Nods, string parenid)是个迭代函数,
树这一类的嵌套结构一般就这样写了

解决方案 »

  1.   

     Bind(NewNode.ChildNodes, row["pid"].ToString());//关键是这一句采用递归的方法层层调用
      

  2.   

     private void BindTreeview()
        {
            string sqlWhere = @" where parentid='0'";   //跟节点
            List<category> listcategory = categoryBll.GetCategoryByUserid(sqlWhere);        foreach (category ca in listcategory)
            {
                TreeNode node = new TreeNode();
                node.NavigateUrl = "";
                node.Text = ca.Categoryname;
                node.Value = ca.Categoryid.ToString();
                node.Expanded = false;
                tvCategory.Nodes.Add(node);            AddChildNode(node);
            }
        }    ///
        /// 添加子节点
        ///
        private void AddChildNode(TreeNode node)
        {
            if (node.Value == null)
                return;
            int categoryid = Convert.ToInt32(node.Value);
            string sqlWhere = " where  parentid='" + categoryid + "' and (userid=1 or userid=0)";        List<category> listcategory = categoryBll.GetCategoryByUserid(sqlWhere);        TreeNode newNoed;
            foreach (category ca in listcategory)
            {
                newNoed = new TreeNode();
                newNoed.Text = ca.Categoryname;
                newNoed.Value = ca.Categoryid.ToString();            node.ChildNodes.Add(newNoed);            AddChildNode(newNoed);
            }
        }
      

  3.   

    用递归绑定数据吧[align=center]*********************************************************** 
                      欢迎使用 CSDN 小秘书
                  http://blog.csdn.net/whowhen21
    ***********************************************************[/align]