您的位置:首页 > 其它

treeview 展开选中节点,收缩同级节点(可以改变展开和收缩的图标)

2011-05-26 16:38 453 查看
项目中的要求:在treev只能打开一个节点,同级节点要收缩。
通过重写TreeView_ToggleNode,可以实现要求。代码如下:
<script type="text/javascript">
    var base_TreeView_ToggleNode = TreeView_ToggleNode;
    TreeView_ToggleNode = function (data, index, node, lineType, children) {
        CollapseBrothers(data, node, lineType, children);
        base_TreeView_ToggleNode(data, index, node, lineType, children);
    }
    function CollapseBrothers(data, node, lineType, childContainer) {
        var parent = childContainer.parentNode;
        for (i = 0; i < parent.childNodes.length; i++) {
            if (parent.childNodes[i].nodeName.toLowerCase() == "div") {
                if (parent.childNodes[i].id != childContainer.id) {
                    parent.childNodes[i].style.display = "none";
                }
            } //end if div
            else if (parent.childNodes[i].nodeName.toLowerCase() == "table") {
                var treeLinks = parent.childNodes[i].getElementsByTagName("a");
                if (treeLinks.length > 2 || treeLinks.length == 2) {
                    var j = 0;
                    if (treeLinks[j].firstChild.nodeName) {
                        if (treeLinks[j].firstChild.nodeName.toLowerCase() == "img") {
                            var img = treeLinks[j].firstChild;
                            //id相等,则不需处理
                            if (img.parentNode.id == node.id) {
                            }
                            else if (img.parentNode.id != node.id) {
                                //   var imgLineType
                                var divHide = document.getElementById(img.parentNode.id); //获取当前点击的IMG的<td>
                                  // divHide.style.display = "none";
                                if ((typeof (img) != "undefined") && (img != null)) {
                                    if (lineType == "l") {
                                        img.src = data.images[14];
                                    }
                                    else if (lineType == "t") {
                                        img.src = data.images[11];
                                    }
                                    else if (lineType == "-") {
                                        img.src = data.images[17];
                                    }
                                    else {
                                        img.src = data.images[4];
                                    }
                                    img.alt = data.expandToolTip.replace(/\{0\}/, TreeView_GetNodeText(node));
                                }
                            } //end if (img.parentNode.id != node.id)
                        } //end if(treeLinks[j].firstChild.nodeName.toLowerCase() == "img")
                    } //end  if (treeLinks[j].firstChild.nodeName)
                } //end   if (treeLinks.length >2 || treeLinks.length==2)
            } // end   if (parent.childNodes[i].nodeName.toLowerCase() == "table")
        } // end for
    } //end function
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  function table div null
相关文章推荐