public static DirectoryTreeItem CreateDirectoryTreeItem(bool isDisplay, bool selected, int parentsCount, bool hasChildren, string text, string linkUrl, string onClickUrl, string target, bool enabled, bool isClickChange) { var item = new DirectoryTreeItem(); item.isDisplay = isDisplay; item.selected = selected; item.parentsCount = parentsCount; item.hasChildren = hasChildren; item.text = text; item.linkUrl = linkUrl; item.onClickUrl = onClickUrl; item.target = target; item.enabled = enabled; item.isClickChange = isClickChange; return(item); }
private static string GetScript(bool isNodeTree) { var script = @" <script language=""JavaScript""> function getTreeLevel(e) { var length = 0; if (!isNull(e)){ if (e.tagName == 'TR') { length = parseInt(e.getAttribute('treeItemLevel')); } } return length; } function closeAllFolder(element){ $(element).closest('table').find('td').removeClass('active'); } function openFolderByA(element){ closeAllFolder(element); if (isNull(element) || element.tagName != 'A') return; $(element).parent().addClass('active'); if (isNodeTree){ for (element = element.previousSibling;;){ if (element != null && element.tagName == 'A'){ element = element.firstChild; } if (element != null && element.tagName == 'IMG'){ if (element.getAttribute('src') == '{iconFolderUrl}') break; break; }else{ element = element.previousSibling; } } if (!isNull(element)){ element.setAttribute('src', '{iconOpenedFolderUrl}'); } } } function getTrElement(element){ if (isNull(element)) return; for (element = element.parentNode;;){ if (element != null && element.tagName == 'TR'){ break; }else{ element = element.parentNode; } } return element; } function getImgClickableElementByTr(element){ if (isNull(element) || element.tagName != 'TR') return; var img = null; if (!isNull(element.childNodes)){ var imgCol = element.getElementsByTagName('IMG'); if (!isNull(imgCol)){ for (x=0;x<imgCol.length;x++){ if (!isNull(imgCol.item(x).getAttribute('isOpen'))){ img = imgCol.item(x); break; } } } } return img; } function displayChildren(element){ if (isNull(element)) return; var tr = getTrElement(element); var img = getImgClickableElementByTr(tr); if (!isNull(img) && img.getAttribute('isOpen') != null){ if (img.getAttribute('isOpen') == 'false'){ img.setAttribute('isOpen', 'true'); img.setAttribute('src', '{iconMinusUrl}'); }else{ img.setAttribute('isOpen', 'false'); img.setAttribute('src', '{iconPlusUrl}'); } } var level = getTreeLevel(tr); var collection = new Array(); var index = 0; for ( var e = tr.nextSibling; !isNull(e) ; e = e.nextSibling) { if (!isNull(e) && !isNull(e.tagName) && e.tagName == 'TR'){ var currentLevel = getTreeLevel(e); if (currentLevel <= level) break; if(e.style.display == '') { e.style.display = 'none'; }else{ if (currentLevel != level + 1) continue; e.style.display = ''; var imgClickable = getImgClickableElementByTr(e); if (!isNull(imgClickable)){ if (!isNull(imgClickable.getAttribute('isOpen')) && imgClickable.getAttribute('isOpen') =='true'){ imgClickable.setAttribute('isOpen', 'false'); imgClickable.setAttribute('src', '{iconPlusUrl}'); collection[index] = imgClickable; index++; } } } } } if (index > 0){ for (i=0;i<=index;i++){ displayChildren(collection[i]); } } } var isNodeTree = {isNodeTree}; </script> "; var item = new DirectoryTreeItem(); script = script.Replace("{iconEmptyUrl}", item.iconEmptyUrl); script = script.Replace("{iconFolderUrl}", item.iconFolderUrl); script = script.Replace("{iconMinusUrl}", item.iconMinusUrl); script = script.Replace("{iconOpenedFolderUrl}", item.iconOpenedFolderUrl); script = script.Replace("{iconPlusUrl}", item.iconPlusUrl); script = script.Replace("{isNodeTree}", (isNodeTree) ? "true" : "false"); return(script); }