我用的是一个框架,左边是树,右边是用来显示内容,
数据库设计首先,我们在SQL SERVER 2000里建立一个表tbTree,表的结构设计如下:
列名 数据类型 描述 长度 主键
ID Int 节点编号 4 是
ParentID Int 父节点编号 4
ConText Nvarchar 我们要显示的节点内容 50

解决方案 »

  1.   

    private void InitTree(TreeNodeCollection Nds,string parentId)
    {
    DataView dv=new DataView();
    TreeNode tmpNd;
    string intId;
    dv.Table=dsMenuInfo.Tables[0];
    dv.RowFilter="parentId="+parentId ;
    foreach(DataRowView drv in dv)
    {
    tmpNd=new TreeNode();
    // tmpNd.DefaultStyle="font-size:8pt ";
    tmpNd.ID=drv["menu_ID"].ToString(); tmpNd.Text=drv["menu_name"].ToString().Trim();
    tmpNd.ImageUrl="../"+"images/image.gif";
    tmpNd.SelectedImageUrl="../"+"images/selectedimage.gif";
    tmpNd.NavigateUrl=".."+drv["url"].ToString()+";//存放右边框架需要显示的地址url
    //tmpNd.NavigateUrl="../"+drv["url"].ToString();
    Nds.Add(tmpNd);
    intId=drv["parentId"].ToString();
    InitTree(tmpNd.Nodes,tmpNd.ID);
    }
    }
      

  2.   

    再加一个grade,你要能够找到根节点啊。
    然后在这个结构上,就可以画树了。
      

  3.   

    树已经画出来了,就是在获取节点信息时出错,
    如果用普通的方法建树就没有这种问题
    public void AddTree(int ParentID,TreeNode pNode) 
    {
    DataSet ds=(DataSet) this.ViewState["ds"]; 
    DataView dvTree = new DataView(ds.Tables[0]);

    dvTree.RowFilter =  "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) 
    {
    TreeNode Node=new TreeNode() ;
    if(pNode == null) 
    {   
    Node.ID = Row["ID"].ToString();
    Node.Text = Row["ConText"].ToString();
    TreeView1.Nodes.Add(Node);
    Node.NavigateUrl="userInfo.aspx?txtID="+Row["ID"].ToString ()+"&txtConText="+Row["ConText"].ToString()+"&txtParentID="+Row["ParentID"].ToString();
    AddTree(Int32.Parse(Row["ID"].ToString()), Node);    

    else 
    {  
    Node.ID=Row["ID"].ToString();
    Node.Text = Row["ConText"].ToString();
    pNode.Nodes.Add(Node);
    //pNode.NavigateUrl="userInfo.aspx?txtID="+Row["ConText"].ToString ();
    pNode.NavigateUrl="userInfo.aspx?ttxtID="+Row["ID"].ToString ()+"&ttxtConText="+Row["ConText"].ToString()+"&ttxtParentID="+Row["ParentID"].ToString();
    AddTree(Int32.Parse(Row["ID"].ToString()),Node);     
    }
    }                   
    }
      

  4.   

    TreeNode tn = this.tree.GetNodeFromIndex(this.tree.SelectedNodeIndex);
      

  5.   

    不管是用什么方法,你可以将需要的值绑定到树项的Tag属性。
      

  6.   

    Node.ID = Row["ID"].ToString();
    没有Node。ID这个属性啊!!
    我吗,我怎么没看到啊