treeview树如:
root--第0层根节点
------第一层节点1
            ------第二层节点1
------第一层节点2第一层是从数据库读取添加的节点,现在要找到第一层的节点名称,添加第二层的节点。要怎样或取呢?

解决方案 »

  1.   

    http://topic.csdn.net/t/20030313/11/1525202.html
    TreeView专题讨论
      

  2.   

    怎么判断已被选择?CHECKED??还是checkbox?
      

  3.   


    <script   language="javascript">
    /*
    函数名称:CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode)
    作者:常东方
    创建日期:2005-02-02
    函数功能:实现带checkbox的treeview中
      1、选中父结点其子结点也全部选中
      2、取消全部子结点的选择后,父结点的选择也随之取消
    使用方法:1、在<head></head>中间添加CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode)
      2、在*.aspx.cs的Page_load()事件中添加yourTreeView.Attribute.Add("OnCheck","CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))")
    */
    //递归遍历所有子节点
    function   CheckNode(currentNode)
    {
    var   childNode=new   Array();
    var   parentNodeChild=new   Array();
    var   isChecked;
    childNode=currentNode.getChildren();
    if(currentNode.getAttribute('checked'))
    {
    isChecked=true;
    }
    else
    {
    isChecked=false;
    }
    //父节点处理
    if(currentNode.getParent()!=null)
    {
    //选中处理
    if(currentNode.getAttribute('Checked'))
    {
    ParentNode(currentNode);
    }
    else
    //取消选中
    {
    ChildNode(currentNode);
    }
    }
    else
    {
    //什么也不做
    }
    //子节点处理
    if(childNode.length>0)
    {
    for(var   i=0;i<childNode.length;i++)
    {
    childNode[i].setAttribute("Checked",isChecked);
    if(childNode[i].getChildren().length>0)
    {
    CheckNode(childNode[i]);
    }
    }
    }}
    //递归选中父节点
    function   ParentNode(currentNode)
    {
    if(currentNode.getParent()!=null)
    {
    currentNode.getParent().setAttribute('Checked',true);
    //递归调用ParentNode(currentNode)以遍历更上一层的父节点
    ParentNode(currentNode.getParent());
    }
    }
    //递归取消选中父节点
    function   ChildNode(currentNode)
    {
    if(currentNode.getParent()!=null)
    {
    var   checkedCount=0;
    var   childNode=currentNode.getParent().getChildren();
    for   (var   i=0;i<childNode.length;i++)
    {
    if(childNode[i].getAttribute('Checked'))
    {
    checkedCount++;
    }
    }
    if(checkedCount==0)
    {
    currentNode.getParent().setAttribute('Checked',false);
    }
    //递归调用ChildNode(currentNode)以遍历更上一层的父节点
    ChildNode(currentNode.getParent());
    }
    }</script> 
    2.得到所选节点的Text,ID或NodeData
    function GetAttribute()
    {
     alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
    }
    替换Text为ID或NodeData,可分别得到所选节点的ID或NodeData3.修改节点属性,如修改第一个节点的Text
    function ModifyNode()
    {
     var node=TreeView1.getTreeNode("0");
     node.setAttribute("Text","hgknight");
    }4.得到点击节点
    function TreeView1.onclick()
    {
     alert(TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("Text"));
    }5.添加节点
    function AddNode()
    {
     var node=TreeView1.createTreeNode();
     node.setAttribute("Text","hgknight");
     TreeView1.add(node);    
    }