public class NodeTag
{
public string node_id;
}          //递归添加树的节点
public void AddTree(string ParentID,TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter =  "[parent_id] = '" + ParentID+"'";
 
foreach(DataRowView Row in dvTree) 
{
TreeNode Node=new TreeNode();
if(pNode == null) 
{    //添加根节点
Node.Text = Row["node_name"].ToString();
MyNodeTag.node_id = Row["node_id"].ToString();
Node.Tag = MyNodeTag;
treeView1.Nodes.Add(Node);
AddTree(Row["node_id"].ToString(), Node); //再次递归

else 
{   //?添加当前节点的子节点
Node.Text = Row["node_name"].ToString();
MyNodeTag.node_id = Row["node_id"].ToString();
Node.Tag = MyNodeTag;
pNode.Nodes.Add(Node);
AddTree(Row["node_id"].ToString(),Node); //再次递归
}
}                   
}
我这样做下来整个树的Node.Tag的MyNodeTag.node_id的值都为最后一个node_id
高手帮我看看啊,谢谢了

解决方案 »

  1.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace kjtest
    {
    /// <summary>
    /// left 的摘要说明。
    /// </summary>
    public class left : System.Web.UI.Page
    {
    protected Microsoft.Web.UI.WebControls.TreeView MainTree;
    protected System.Web.UI.WebControls.Label Label1;



    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
       } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }
    给你一个与数据库链接的代码,这是可以用的,我试过也正在用的
      

  2.   

    大哥我这个是Forms的程序,而且连接数据给我看是什么意思?