日期:2014-05-17  浏览次数:20862 次

急求!递归算法绑定TreeView根节点绑定好了,子节点绑定不上去!
[code=C#][/code] protected void Page_Load(object sender, EventArgs e)
  {
  if (!Page.IsPostBack)
  {
  foreach (Categories c in cs.findAll())
  {
  TreeNode t = new TreeNode();
  t.Text = c.Name;
  t.Value = c.Id;
  TreeView1.Nodes.Add(t);
  addchildNodes(t);
  }
  }

  }

  private void addchildNodes(TreeNode tn)
  {
  string pid = tn.Value;
  foreach (Categories c in cs.find(pid))
  {
  TreeNode t = new TreeNode();
  t.Text = c.Name;
  t.Value = c.Id;
  TreeView1.Nodes.Add(t);
  addchildNodes(t);
  }
  }

------解决方案--------------------
TreeView1.Nodes.Add(t);
这句代码的意思,是在树控件里添加根节点;
也就是说,无论你递归多少次,你都不可能添加子节点;

添加子节点的语句,我凭印象,大概记得如下
TreeView1.Nodes.Find(pid,true)[0].Nodes.Add(t);

意义为:首先在树控件中找到待添加节点的父节点([0]的意义为查找到的第一个符合条件的节点),然后在将待添加节点添置为该节点的直接子节点。