TreeView CheckBox级联选中

 
方法一:子结点选中,父节点也随之选中
前台:
<head></head>之间插入如下Java代码
function public_GetParentByTagName(element, tagName) 
{
         
var parent = element.parentNode;
         
var upperTagName = tagName.toUpperCase ();
         
//如果这个元素还不是想要的tag就继续上溯
         while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
         {
             parent 
= parent.parentNode ? parent.parentNode : parent.parentElement;
         } 
         
return parent;
}

//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问 
function setParentChecked(objNode)

         
var objParentDiv = public_GetParentByTagName (objNode,"div");
         
if (objParentDiv==null || objParentDiv == "undefined"
         {
             
return;
         } 
         
var objID = objParentDiv.getAttribute ("ID");
         objID 
= objID.substring(0,objID.indexOf ("Nodes"));
         objID 
= objID+"CheckBox";
         
var objParentCheckBox = document.getElementById (objID);
         
if (objParentCheckBox==null || objParentCheckBox == "undefined"
         {
             
return;
         } 
         
if (objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
         
return
         objParentCheckBox.checked 
= true;
         setParentChecked (objParentCheckBox);
}

//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问 
function setChildUnChecked(divID)

         
var objchild = divID.children;
         
var count = objchild.length; 
         
for(var i=0;i<objchild.length;i++
         {
             
var tempObj = objchild [i];
             
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox"
             {
               tempObj.checked 
= false;
             } 
             setChildUnChecked(tempObj); 
         }
}

//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问 
function setChildChecked(divID)

         
var objchild = divID.children;
         
var count = objchild.length; 
         
for(var i=0;i<objchild.length;i++
         {
             
var tempObj = objchild [i];
             
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox"
             {
             tempObj.checked 
= true;
             }
             setChildChecked(tempObj); 
         } 
}

function CheckEvent()
{

         
var objNode = event.srcElement; 

         
if(objNode.tagName!="INPUT" || objNode.type!="checkbox"
         
return;

         
if(objNode.checked==true
         {
             setParentChecked (objNode);
              
var objID = objNode.getAttribute ("ID");
           
var objID = objID.substring(0,objID.indexOf("CheckBox")); 
             
var objParentDiv = document.getElementById (objID+"Nodes");
              
if(objParentDiv==null || objParentDiv == "undefined"
             {
            
return;
            } 
             setChildChecked (objParentDiv);
         } 
         
else
         {
             
var objID = objNode.getAttribute ("ID");
           
var objID = objID.substring(0,objID.indexOf("CheckBox")); 
             
var objParentDiv = document.getElementById (objID+"Nodes");
              
if(objParentDiv==null || objParentDiv == "undefined"
             {
             
return;
             } 
             setChildUnChecked (objParentDiv);
         }
}
后台:Page_Load中添加单击事件
        protected void Page_Load(object sender, EventArgs e)
        {
            
if (!IsPostBack)
            {
                
this.TreeView1.Attributes.Add("onclick","CheckEvent()");
            }
        }

方法二:子结点选中,父节点不跟随选中
前台:<head></head>之间插入如下Java代码
function OnTreeNodeChecked() 

    
var ele = event.srcElement; 
    
if(ele.type=='checkbox'
    { 
        
var childrenDivID = ele.id.replace('CheckBox','Nodes'); 
        
var div = document.getElementById(childrenDivID); 
        
if(div==null)return
        
var checkBoxs = div.getElementsByTagName('INPUT'); 
        
for(var i=0;i<checkBoxs.length;i++
        { 
            
if(checkBoxs[i].type=='checkbox'
                checkBoxs[i].checked
=ele.checked; 
        } 
    } 
前台页面:
 TreeView添加
OnClick="OnTreeNodeChecked()
事件
阅读更多
文章标签: null input java div
个人分类: 常用查询
想对作者说点什么? 我来说一句

bootstrap treeview级联效果demo

2017年04月05日 61KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭