思路,从数据库读取数据,得到一个DataTable,然后通过DataTable.Select()方法进行筛选来绑定子节点,
参考:
        /// <summary>
        /// 内容描述:用递归方法将数据中查询的数据添加TreeView控件的节点
        /// </summary>
        /// <param name="tnRoot">父节点</param>
        /// <param name ="dataTB">根据条件查询数据的结果集,结果集用于绑定TreeView节点</param>
        private void BindTreeNode(TreeNode tnRoot,DataTable dataTB)
        {
            string filter ="[Parent]='"+tnRoot.ID+"'";
             DataRow[] childRows = dataTB.Select(filter);            //将数据添加到节点
            for (int i=0;i<childRows.Length;i++)
            {
                //创建节点
                TreeNode tnChild = new TreeNode();                //将ID指定为节点的ID
                tnChild.ID = childRows[i]["itemID"].ToString();                //获得每个类别的操作权限,以此控制操作按钮的可用性
                string nodeText = childRows[i]["itemName"].ToString() ;
                string nodeTip = childRows[i]["re"].ToString() ;
                                
                                    tnChild.ImageUrl = "Images/passage.gif";
                    tnChild.ExpandedImageUrl = "Images/passage.gif";
               
                tnRoot.Nodes.Add(tnChild);
                
                                //递归.
                this.BindTreeNode(tnChild,dataTB);
            }           
        }

解决方案 »

  1.   

    你可以通过 onexpand 事件进行处理!前后台都可以!
      

  2.   

    strText=TreeView1.SelectedNodeIndex .ToString ()
    intA=strText.Length();
    intB=intA/2+1    //长度/2取整+1就是它所在的层
      

  3.   

    感谢js981dz(大柱)!判断层次已解决。还有一个问题就是怎么取得点击的节点的值?ID
      

  4.   

    var nodeindex = event.treeNodeIndex;
    if (typeof(nodeindex) == undefined)
    {
    return;
    }
        
    oNode = Tree_Item.getTreeNode(nodeindex);

    strID = oNode.getAttribute("ID");
      

  5.   

    谢谢楼上几位,现在遇到一个问题是报错:microsoft.web.ui.webcontrols.treeview并不包含对gettreenode的定义 ???请问怎么解决?
      

  6.   

    重载一个treeview类,加上gettreenode的方法