asp.net treeview 확장/붕괴는 노드 아이콘이있을 때 모두 작동하지 않습니다.

StackOverflow https://stackoverflow.com/questions/1639258

문제

다음 JS 코드를 사용하여 ASP.NET TreeView Control의 모든 노드를 확장/축소했습니다.

// handle tree - this doesn't seem to work when the tree contains node images
function TreeviewExpandCollapseAll(treeViewId, expandAll) {
    var displayState = (expandAll == true ? "none" : "block");
    var treeView = document.getElementById(treeViewId);
    if (treeView) {
        var treeLinks = treeView.getElementsByTagName("a");
        var nodeCount = treeLinks.length;
        alert(nodeCount);

        for (i = 0; i < nodeCount; i++) {
            if (treeLinks[i].firstChild.tagName) {
                if (treeLinks[i].firstChild.tagName.toLowerCase() == "img") {
                    var currentToggleLink = treeLinks[i];
                    var childContainer = GetParentByTagName("table", currentToggleLink).nextSibling;
                    if (childContainer.style.display == displayState) {
                        eval(currentToggleLink.href);
                    }
                }
            }
        } //for loop ends
    }
}

//utility function to get the container of an element by tagname
function GetParentByTagName(parentTagName, childElementObj) {
    var parent = childElementObj.parentNode;
    while (parent.tagName.toLowerCase() != parentTagName.toLowerCase()) {
        parent = parent.parentNode;
    }
    return parent;
} 

문제는 내가 가지고있을 때입니다 Nodestyle-Imageurl = "IMG/Follersmall.gif" , 첫 번째 하위 노드를 여는 후 확장이 실패합니다 - 노드 이미지가있는 경우에만.

JS 오류는 ChildContainer입니다.

                    if (childContainer.style.display == displayState) {
                        eval(currentToggleLink.href);

나는 다른 사람이 이것에 들어갔다고 확신하지만, 확장/붕괴를 위해 내가 찾은 모든 코드는 같은 시점에서 실패합니다.

도움이 되었습니까?

해결책

이것은 실제로 시간이되지만 올바르게 기억한다면 전화로 NULL을 반환하지 않기 위해 단순히 1px 이미지 자리 표시자를 포함 시켰습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top