日期:2014-05-18  浏览次数:20375 次

请教高手 在线等 关于vs.net2005中的treeview使用问题
protected void BindDataDT()
  {
  kogbd.DataAccess.SqlService db=new kogbd.DataAccess.SqlService();
  string sql = "select top 10 orgid,orgname,parentcode,selfcode from t_Organzation ";
  mydataDT = db.GetDataTable(sql);
  }
//treeview递归
 public void InitTree(TreeNodeCollection tns, string parentid)
  {
  DataView dv =mydataDT.DefaultView;
  dv.RowFilter = "parentcode=" + parentid;
  TreeNode tn;
  foreach (DataRowView drv in dv)
  {
  tn = new TreeNode();
  tn.Text = drv["parentcode"].ToString()+"_" + drv["selfcode"].ToString() + drv["orgname"].ToString();
  tn.Value = drv["selfcode"].ToString();
  tns.Add(tn);

  InitTree(tn.ChildNodes, tn.Value);
  }
  } 

  protected void Button2_Click(object sender, EventArgs e)
  {
  BindDataDT();
  TreeNode node = new TreeNode();
  node.Text = "办事机构";
  node.Value = "0";
  InitTree(TreeView2.Nodes, "0");
  }

请问这有问题吗 怎么老通不过了报错

------解决方案--------------------
抱什么错,错误信息给出来撒
------解决方案--------------------
先确认你的mydataDT 有没有取到数据吧,跟踪一下就看出来了
------解决方案--------------------
改成如下
C# code

 protected void Button2_Click(object sender, EventArgs e) 
    { 
        BindDataDT(); 
        TreeNode node = new TreeNode(); 
        node.Text = "办事机构"; 
        node.Value = "0"; 
        TreeView2.Nodes.Add(node);
  
        InitTree(TreeView2.Nodes[0].ChildNodes, "0"); 
    }

------解决方案--------------------
tn.Value

修改为

tn.NodeData
------解决方案--------------------
我总感觉你这种邦定怎么改都会有问题。。。
我的做法是先帮第一级节点,之后再开始调用递归。。

给你找个例子参考一下。。。

http://topic.csdn.net/u/20070921/16/6e0f507d-b5e3-43b6-a07a-e12031bdd704.html

虽然这里边只绑了2级菜单,多级的话你可以在addchildmenu1继续调用addchildmenu1。。。。