ASP.Net TreeView Développer / Réduire tout ne fonctionne pas lorsque des icônes de nœud sont présentes

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

Question

J'ai utilisé le code js suivant pour développer / réduire tous les nœuds d'un contrôle ASP.Net TreeView:

// 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;
} 

Le problème est que, lorsque j'ai NodeStyle-ImageUrl = "img / FolderSmall.gif" , le développement échoue après l'ouverture du premier nœud enfant - UNIQUEMENT lorsque des images de nœud sont présentes.

L'erreur JS est childContainer est null:

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

Je suis sûr que quelqu'un d'autre l'a rencontré, mais tout le code que j'ai trouvé pour développer / réduire échoue au même moment.

Était-ce utile?

La solution

C’est vraiment il ya quelque temps, mais si je me souviens bien, j’ai simplement inclus un espace réservé d’image 1px afin de ne pas renvoyer la valeur null lors des appels.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top