星宿.net

星星的随笔

博客园 首页 新随笔 联系 订阅 管理

TreeView中的checkbox只能单选(只有叶子节点有checkbox)

var treeRoot;
var checkNode
function public_GetParentByTagName(element, tagName) 
{
    
var parent = element.parentNode;
    
var upperTagName = tagName.toUpperCase();
    
while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
    
{
        parent 
= parent.parentNode ? parent.parentNode : parent.parentElement;
    }

    
return parent;
}

function getParentNode(objNode)

    
var objParentDiv = public_GetParentByTagName(objNode,"div");
    
if(objParentDiv==null || objParentDiv == "undefined")
    
{
        treeRoot 
= objParentDiv;
        
return;
    }

    
var objID = objParentDiv.getAttribute("ID");
    
var objParentNode = document.getElementById(objID);
    
if(objParentNode.getAttribute("ID").indexOf("Nodes")<0)
    
{
        
//alter(objParentNode);
        treeRoot = objParentDiv;
        
return;
    }

    getParentNode(objParentNode);
}

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")
        
{
            
if(checkNode != tempObj)
            
{
                tempObj.checked 
= false;
             }

        }

        setChildUnChecked(tempObj); 
    }

}

function CheckEvent()
{
    
var objNode = event.srcElement; 
    checkNode 
= objNode;
    
if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
    
return;
    
if(objNode.checked==true)
    
{
        getParentNode(objNode);
        setChildUnChecked(treeRoot)
    }

}

posted on 2007-04-16 15:08  星宿.NET  阅读(830)  评论(0编辑  收藏  举报