table
   id   name   Parent_Id
   1    中国      0
   2    美国      0
   3    江苏      1
   4    湖北      1
   5    纽约      2
   6    南京市    3上面这样的树型表,怎么不限制层次treeView
中国
   江苏
      南京市
   湖北
美国
   纽约在网上找了一些,debug发现不行,逻辑都有问题,请教啊,这个问题困扰我4天了

解决方案 »

  1.   

    private void BindTreeView()
            {
                pTree.Nodes.Clear();
                DataTable dt = 数据源;
                DataRow[] rowlist = dt.Select(" parentid=0");
                foreach (DataRow row in rowlist)
                {
                    TreeNode node = new TreeNode();
                    node.Text = Convert.ToString(row["name"]);
                    node.Name = Convert.ToString(row["id"]);
                    tvDept.Nodes.Add(node);
                    BindChildNode(node, dt);
                }            tvDept.SelectedNode = tvDept.Nodes[0];
                tvDept.ExpandAll();
            }        private void BindChildNode(TreeNode pNode, DataTable dt)
            {
                DataRow[] rowlist = dt.Select(" parentid='" + pNode.Name + "'");
                foreach (DataRow row in rowlist)
                {
                    TreeNode childNode = new TreeNode();
                    childNode.Text = Convert.ToString(row["name"]);
                    childNode.Name = Convert.ToString(row["id"]);
                    pNode.Nodes.Add(childNode);                BindChildNode(childNode, dt);
                }
            }
      

  2.   

    private void BindTreeView()
      {
      pTree.Nodes.Clear();
      DataTable dt = 数据源;
      DataRow[] rowlist = dt.Select(" parentid=0");
      foreach (DataRow row in rowlist)
      {
      TreeNode node = new TreeNode();
      node.Text = Convert.ToString(row["name"]);
      node.Name = Convert.ToString(row["id"]);
      tvDept.Nodes.Add(node);
      BindChildNode(node, dt);
      }  tvDept.SelectedNode = tvDept.Nodes[0];
      tvDept.ExpandAll();
      }  private void BindChildNode(TreeNode pNode, DataTable dt)
      {
      DataRow[] rowlist = dt.Select(" parentid='" + pNode.Name + "'");
      foreach (DataRow row in rowlist)
      {
      TreeNode childNode = new TreeNode();
      childNode.Text = Convert.ToString(row["name"]);
      childNode.Name = Convert.ToString(row["id"]);
      pNode.Nodes.Add(childNode);  BindChildNode(childNode, dt);
      }
      }