2 function TreeView_ToggleExpand (treeId, nodeId) {
3 var tree = getTree (treeId);
4 var spanId = treeId + "_" + nodeId;
5 var node = document.getElementById (spanId);
6 var expand = node.style.display == "none";
8 if (tree.populateFromClient && expand && node.populated != true && (node.innerHTML.length == 0 || node.hasError)) {
9 WebForm_DoCallback (treeId, nodeId, TreeView_PopulateCallback, treeId + " " + nodeId, TreeView_ErrorCallback)
14 node.populated = true;
16 node.style.display = expand ? "block" : "none";
18 var inputStates = document.forms[0][treeId + "_ExpandStates"];
19 TreeView_SetNodeFlag (inputStates, nodeId, expand);
22 var image = document.getElementById (spanId + "_img");
23 if (tree.defaultImages) {
24 if (expand) image.src = image.src.replace ("plus","minus");
25 else image.src = image.src.replace ("minus","plus");
27 if (expand) image.src = tree.collapseImage;
28 else image.src = tree.expandImage;
31 if (expand) alt = tree.collapseAlt;
32 else alt = tree.expandAlt;
34 if (alt.indexOf ("{0}") != -1) {
35 var txt = document.getElementById (spanId + "_txt").innerText;
36 alt = alt.replace ("{0}", txt);
42 function TreeView_SetNodeFlag (flagInput, nodeId, set)
44 if (!set) flagInput.value = flagInput.value.replace ("|" + nodeId + "|", "|");
45 else flagInput.value = flagInput.value + nodeId + "|";
48 function TreeView_PopulateCallback (data, ids)
50 var idArray = ids.split (" ");
51 var tree = getTree (idArray[0]);
52 var spanId = idArray[0] + "_" + idArray[1];
53 var node = document.getElementById (spanId);
54 node.populated = true;
56 node.innerHTML = data;
57 TreeView_ToggleExpand (idArray[0], idArray[1]);
59 if (tree.showImage && tree.noExpandImage != null) {
60 var image = document.getElementById (spanId + "_img");
61 image.src = tree.noExpandImage;
66 function TreeView_ErrorCallback (data, ids)
68 var idArray = ids.split (" ");
69 var node = document.getElementById (idArray[0] + "_" + idArray[1]);
70 node.innerHTML = data;
71 node.populated = true;
72 TreeView_ToggleExpand (idArray[0], idArray[1]);
73 node.populated = false;
77 function getTree (treeId) { return eval (treeId + "_data"); }