子风.NET 进阶中......

路途多艱,唯勤是岸

 

TreeView节点选择问题

就是VS2005的TreeView中父节点的CheckBox被点击 则其下的所有子节点也被选中

子节点只要有一个选择 父节点也被选择上

子节点没有一个被选择 父节点就取消选择

查找csdn的上的代码,这里引用了cpp2017(慕白兄)  的js代码.
    <script >
 function GoClick()
 {
   
   var obj = event.srcElement;
   if(obj.tagName.toUpperCase() != "INPUT") return;
   var tb = obj.parentElement.parentElement.parentElement.parentElement;//当前节点的Table
 
   SelAllChildren(tb,obj.checked);
 
   tb=  tb.parentElement;//
  
   while(true)
   {
      tb = tb.previousSibling
     if( tb == null) return;
      SetParentCheckBoxStatus(tb);
      tb=  tb.parentElement
      if( tb == null) return;
   }
   
 }
 
 
 function SelAllChildren(tb,checked)
 {
    var div = tb.nextSibling;
   try
   {
    for(var i=0;i<div.children.length;i++)
    {
      
        if(div.children[i].tagName.toUpperCase()!="TABLE")continue;
        var chkBox= FindRowCheckBox(div.children[i].rows[0]);
        if(chkBox == null) continue;
        chkBox.checked = checked;
       
        SelAllChildren(div.children[i],checked);
       
    }
    }catch(e){}
 }
 function SetParentCheckBoxStatus(objTb)
 {
    var div = objTb.nextSibling;
    
    var bSelAll = true;
    var bSelOne = false;
    for(var i=0;i<div.children.length;i++)
    {
       
        if(div.children[i].tagName.toUpperCase()!="TABLE")continue;
       
        var chkBox= FindRowCheckBox(div.children[i].rows[0]);
       
        if(!chkBox.checked)
        {
            bSelAll =false;
        }else
        {
            bSelOne = true;
        }
    }
   
   
    if(objTb.rows!= null)
    {
        var chkBox = FindRowCheckBox(objTb.rows[0])
        chkBox.checked  = bSelOne;
       
    }
 }
 
 function FindRowCheckBox(tr)
 {
    for(var i=0;i<tr.cells.length;i++)
    {
        if(tr.cells[i].firstChild.tagName == "INPUT")
        {
            return tr.cells[i].firstChild;
        }
    }
 }
 
 
 function CheckDeleteTree(form,treeviewid)
{
    if(document.getElementById(treeviewid+"_SelectedNode").value == "")
    {
        alert("请选择!");
        return
    }else
    {
        return confirm("确定?");
    }

}

</script>

<asp:TreeView ID="TreeView1" 
        onclick="javascript:GoClick()"
        EnableClientScript="true"/>

可以实现我需要的功能 ,这里特别感谢 慕白兄

posted on 2007-05-30 10:06  子风  阅读(546)  评论(0)    收藏  举报

导航