msdn有你要的东东。
你可以用用搜索,类似的回答很多!

解决方案 »

  1.   

    对msdn我前的这个问题也是在msdn中找到解决方法的
      

  2.   

    你的意思是在tmpNode下添加节点吗?dim tmpNode1 As New TreeNode() 
            tmpNode1.Text =...
            tmpNode1.NodeData = ...
            tmpNode1.Expandable = ...
            tmpNode.Nodes.Add(tmpNode1)
      

  3.   

    //tTopSubject
    //tNodeSubject 
    //以上为两个表,类型为DataTable,从数据库中取出数据填充到两个表中,最好不用DataReader

    dim ds as DataSet =new DataSet("Tem")
    ds.Tables.Add(tTopSubject)
    ds.Tables.Add(tNodeSubject)
    //建立关系
    ds.Relations.Add("Pc",tTopSubject.Columns["fTopID"],tNodeSubject.Columns["fTopID"])

    dim i as integer
    i=0;
    do while (i<tTopSubject.Rows.Count)
    dim tmpNode as Microsoft.Web.UI.WebControls.TreeNode =new Microsoft.Web.UI.WebControls.TreeNode()
    tmpNode.Text = tTopSubject.Rows("fTopName")
    tmpNode.NodeData = tTopSubject.Rows("fTopID")
    tmpNode.Expandable = ExpandableValue.CheckOnce
    treeview1.Nodes.Add(tmpNode) dim dr_tem as DataRow[]
    dr_tem= tTopSubject.Rows[i].GetChildRows("Pc")
    int j=0;
    do while (j<dr_tem.Length)
    dim tmpNode as Microsoft.Web.UI.WebControls.TreeNode =new Microsoft.Web.UI.WebControls.TreeNode()
    childeNode.Text = dr_tem("fNodeName")
    childeNode.NodeData = dr_tem("fNodeID")
    childeNode.Expandable = ExpandableValue.CheckOnce
    treeview1.Nodes.Add(childeNode)
    loop
    loop
      

  4.   

    楼上的代码我用了,怎么开始是VB.Net,后来变成C#了?还有这句:
    childeNode.Text = dr_tem("fNodeName")
    这个dr_tem是个DataRows的数组,VB.net里面不能这样写。请高手告诉我怎样写出子节点,给出示例URL也行,急!
    谢谢!
      

  5.   

    错误主要出现在第二个Do While前面,首先定义了一个DataRows的集合,然后根据定义的关系获得内容:
    dim dr_tem as DataRow[]
    dr_tem= tTopSubject.Rows[i].GetChildRows("Pc")
    但是在Do While里面
    定义的chiledNode的值如下:
    childeNode.Text=dr_tem("fNodeName")
    这句代码出错,是不是在C#下可以用?
      

  6.   

    我本来用c#写的,但我看你的VB.NET,我就手动改成VB。NET
      

  7.   

    DataSet ds=new DataSet("Tem");
    ds.Tables.Add(tTopSubject);
    ds.Tables.Add(tNodeSubject);
    //建立关系
    ds.Relations.Add("Pc",tTopSubject.Columns["fTopID"],tNodeSubject.Columns["fTopID"]);

    int i=0;
    while(i<tTopSubject.Rows.Count)
    {
    Microsoft.Web.UI.WebControls.TreeNode tmpNode =new Microsoft.Web.UI.WebControls.TreeNode();
    tmpNode.Text = tTopSubject.Rows("fTopName");
    tmpNode.NodeData = tTopSubject.Rows("fTopID");
    tmpNode.Expandable = ExpandableValue.CheckOnce;
    treeview1.Nodes.Add(tmpNode); DataRow[] dr_tem;
    dr_tem= tTopSubject.Rows[i].GetChildRows("Pc");
    int j=0;
    while (j<dr_tem.Length)
    {
    Microsoft.Web.UI.WebControls.TreeNode childeNode =new Microsoft.Web.UI.WebControls.TreeNode();
    childeNode.Text = dr_tem("fNodeName");
    childeNode.NodeData = dr_tem("fNodeID");
    childeNode.Expandable = ExpandableValue.CheckOnce;
    tmpNode.Nodes.Add(childeNode);
    }
    }
    这是C#的写法
      

  8.   

    老兄还是应该多用用csdn的搜索啊!这是同一表里使用递归的方法:
     Private Sub BoundTreeview(ByRef TreeNodes As TreeNodeCollection, ByVal ParentID As Integer)
            'DocName,DocumentID,ParentDocID
            Dim ds As New DataSet()
            ds = Session("ds")
            Dim treeDV As New DataView()
            Dim treeDVrow As DataRowView
            Dim treeId As Integer
            Dim treeTemp As TreeNode
            Dim treeName As String
            treeDV.Table = ds.Tables(0)
            treeDV.RowFilter = "documentid<>'" & ParentID & "' and parentdocid='" & ParentID & "'"
            For Each treeDVrow In treeDV
                treeTemp = New TreeNode()
                treeName = treeDVrow("DocName")
                treeId = treeDVrow("DocumentID")
                treeTemp.ID = treeId
                treeTemp.NavigateUrl = "DisplayDOC.aspx?DOCID=" & treeId
                treeTemp.Text = treeName
                TreeNodes.Add(treeTemp)
                BoundTreeview(TreeNodes(TreeNodes.Count - 1).Nodes, treeId)
            Next    End Sub表结构:
    字段名 含义 长度及类型 是否主键
    DocumentID 文件夹id Int(4) 是
    PersonID 用户id Int(4) 是
    ParentDocID 父文件夹id Int(4)
    DocName 文件夹名称 String(50)
    Note:DocumentID为其唯一id,ParentDocID为其父节点id,若无父节点,ParentDocID默认值为DocumentID 取得session("ds")的方法:
    select DocName,DocumentID,ParentDocID from euserdocument where personid=@PersonID and DocumentID<>ParentDocID对于你的应用,酌情修改。
      

  9.   

    谢谢你:luoqing(明天将会...) 
    另:yohomonkey(关在笼子里的猴):
    我已经写出代码了,请您看看这个地址:
    http://www.dw-mx.com/forum/mb_forum/detail2.asp?f2_id=18&f3_id=8789&f3_name=笑望人生这个是实现TreeView的代码(VS.net抓图)和结果。请看看这个帖子:
    http://expert.csdn.net/Expert/topic/1418/1418076.xml?temp=.6037561主要问如何定义TreeView的样式,如何定义URL,谢谢!!
      

  10.   

    关于url的定义,可以用传递参数的方式,如果很多,可以使用跳转页面或函数来达到。