我给你我的代码
public void InitTree(TreeView treeDept)
初始化代码树代码
{ treeDept.Nodes.Clear();
TreeNode nodeDept=new TreeNode();
nodeDept.ID="0";
nodeDept.Text="部门机构";
nodeDept.NodeData="-1";
treeDept.Nodes.Add(nodeDept);
dsDept=dataObject.GetDeptDataSet();
InitDeptTree(nodeDept,"0");
nodeDept.Expanded=true;
}
//初始化树递归过程
private void InitDeptTree(TreeNode nodeDept, string strDeptId)
{
string strCondition="ParentId='"+strDeptId+"'";
DataRow[] row=dsDept.Tables[0].Select(strCondition); for(int i=0; i<=row.GetUpperBound(0);i++)
{
TreeNode nodeTemp=new TreeNode(); 
nodeTemp.ID=row[i][0].ToString();
nodeTemp.Text=row[i][1].ToString();
nodeTemp.NodeData=row[i][2].ToString();
nodeDept.Nodes.Add(nodeTemp);
InitDeptTree(nodeTemp,nodeTemp.ID);
}
}
//在点击了某个节点后刷新该节点,你可以转成建下一曾数据
public void RefreshTree(TreeView treeDept)
{
TreeNode nodeDept=CurrentNode(treeDept);//这些你都知道吧取当前被选择节点的属性,我写成过程了。
string strDeptId=GetDeptId(treeDept);
dsDept=dataObject.GetDeptDataSet();
nodeDept.Nodes.Clear();
InitDeptTree(nodeDept,strDeptId);
nodeDept.Expanded=true;
}

解决方案 »

  1.   

    我的也送给你,自己看吧。
        Private Sub tvTree_SelectedIndexChange(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) Handles tvTree.SelectedIndexChange
            Dim olNode, neNode As Microsoft.Web.UI.WebControls.TreeNode
            'Response.Write(txShowMsg(tvTree.SelectedNodeIndex.ToString))
            olNode = tvTree.GetNodeFromIndex(tvTree.SelectedNodeIndex.ToString)
            If olNode.Nodes.Count > 0 Then
                olNode.Expanded = True
                Return
            End If
            Dim ndata As String
            ndata = olNode.NodeData()
            Dim sql, user_id As String
            user_id = Request.Cookies("USER_ID").Value
            sql = "Select MCODE,MNAME,WF_URL from SYS_MENU Where PERENT_CODE='" + ndata + _
             "' And MCODE In (Select MENU_CODE from USER_POWER Where USER_ID='" + user_id + "') Order By MCODE,MNAME"
            Dim oconn As OleDbConnection = New OleDbConnection(txGetDBConnStr())
            Dim ocmd As OleDbCommand = New OleDbCommand(sql, oconn)
            oconn.Open()
            Dim odr As OleDbDataReader
            odr = ocmd.ExecuteReader()
            While odr.Read()
                neNode = New Microsoft.Web.UI.WebControls.TreeNode()
                neNode.NodeData = odr.GetValue(0)
                neNode.Text = odr.GetValue(1)
                If odr.GetValue(2) Is DBNull.Value Then
                    neNode.NavigateUrl = ""
                Else
                    If odr.GetValue(0) <> "51" Then
                        neNode.NavigateUrl = odr.GetValue(2) + txGetxf(True)
                    Else
                        neNode.NavigateUrl = odr.GetValue(2)
                    End If
                End If
                neNode.ExpandedImageUrl = "img\images\html.gif"
                neNode.ImageUrl = "img\images\html.gif"
                neNode.Target = "dright"
                olNode.Nodes.Add(neNode)
            End While
            olNode.Expanded = True
            odr.Close()
            oconn.Close()
        End Sub
      

  2.   

    http://expert.csdn.net/Expert/topic/1525/1525202.xml
    http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=496821.下载地址
    http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
    安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里2.运行时无法显示
    一般是TreeView的版本问题,最好下载英文版自动安装版本重新安装,安装前应该先到添加删除程序里卸掉原版本3.显示格式出错(非树状显示)
    TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.04.框架里使用TreeView
    设置NavigateUrl、Target属性,可更新另外的Frame5.找不到TreeNode类
    使用TreeView,最好添加namespace:using Microsoft.Web.UI.WebControls;6.遍历TreeView节点(递归算法)
    private void Page_Load(object sender, System.EventArgs e)
    {
    GetAllNodeText(TreeView1.Nodes);
    }
    void GetAllNodeText(TreeNodeCollection tnc)
    {
    foreach(TreeNode node in tnc)
    {
    if(node.Nodes.Count!=0)
    GetAllNodeText(node.Nodes);
    Response.Write(node.Text + " ");
    }
    }7.得到node结点的父节点
    TreeNode pnode;
    if(node.Parent is TreeNode)
    pnode=(TreeNode)node.Parent;
    else
    //node is root node
      

  3.   


    11.得到所选节点的Text,ID或NodeData
    function GetAttribute()
    {
    alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
    }
    替换Text为ID或NodeData,可分别得到所选节点的ID或NodeData
      

  4.   


    11.得到所选节点的Text,ID或NodeData
    function GetAttribute()
    {
    alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
    }
    替换Text为ID或NodeData,可分别得到所选节点的ID或NodeData
      

  5.   

    http://expert.csdn.net/Expert/topic/2093/2093882.xml?temp=.1663629