asp.net treeview 확장/붕괴는 노드 아이콘이있을 때 모두 작동하지 않습니다.
-
08-07-2019 - |
문제
다음 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 이미지 자리 표시자를 포함 시켰습니다.
제휴하지 않습니다 StackOverflow