TreeView.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. function TreeView_ToggleExpand (treeId, nodeId) {
  2. var tree = getTree (treeId);
  3. if (tree == null)
  4. return;
  5. var spanId = treeId + "_" + nodeId;
  6. var node = document.getElementById (spanId);
  7. var expand = node.style.display == "none";
  8. if (tree.populateFromClient && expand && node.populated != true && (node.innerHTML.length == 0 || node.hasError)) {
  9. WebForm_DoCallback (tree.uid, nodeId, TreeView_PopulateCallback, treeId + " " + nodeId, TreeView_ErrorCallback)
  10. return;
  11. }
  12. if (!node.hasError)
  13. node.populated = true;
  14. node.style.display = expand ? "block" : "none";
  15. var myForm = WebForm_GetFormFromCtrl (treeId);
  16. var inputStates = myForm [treeId + "_ExpandStates"];
  17. TreeView_SetNodeFlag (inputStates, nodeId, expand);
  18. if (tree.showImage) {
  19. var image = document.getElementById (spanId + "_img");
  20. if (tree.defaultImages) {
  21. if (expand) image.src = image.src.replace ("plus","minus");
  22. else image.src = image.src.replace ("minus","plus");
  23. } else {
  24. if (expand) image.src = tree.collapseImage;
  25. else image.src = tree.expandImage;
  26. }
  27. var alt;
  28. if (expand) alt = tree.collapseAlt;
  29. else alt = tree.expandAlt;
  30. if (alt.indexOf ("{0}") != -1) {
  31. var txt = document.getElementById (spanId + "_txt").innerText;
  32. alt = alt.replace ("{0}", txt);
  33. }
  34. image.alt = alt;
  35. }
  36. }
  37. function TreeView_SetNodeFlag (flagInput, nodeId, set)
  38. {
  39. if (!set) flagInput.value = flagInput.value.replace ("|" + nodeId + "|", "|");
  40. else flagInput.value = flagInput.value + nodeId + "|";
  41. }
  42. function TreeView_PopulateCallback (data, ids)
  43. {
  44. var idArray = ids.split (" ");
  45. var tree = getTree (idArray[0]);
  46. if (tree == null)
  47. return;
  48. var spanId = idArray[0] + "_" + idArray[1];
  49. var node = document.getElementById (spanId);
  50. node.populated = true;
  51. if (data != "*") {
  52. node.innerHTML = data;
  53. TreeView_ToggleExpand (idArray[0], idArray[1]);
  54. var myForm = WebForm_GetFormFromCtrl (idArray[0]);
  55. TreeView_SetNodeFlag (myForm [idArray[0] + "_PopulatedStates"], idArray[1], true);
  56. } else {
  57. if (tree.showImage && tree.noExpandImage != null) {
  58. var image = document.getElementById (spanId + "_img");
  59. image.src = tree.noExpandImage;
  60. }
  61. }
  62. }
  63. function TreeView_ErrorCallback (data, ids)
  64. {
  65. var idArray = ids.split (" ");
  66. var node = document.getElementById (idArray[0] + "_" + idArray[1]);
  67. node.innerHTML = data;
  68. node.populated = true;
  69. TreeView_ToggleExpand (idArray[0], idArray[1]);
  70. node.populated = false;
  71. node.hasError = true;
  72. }
  73. function getTree (treeId) { try { return eval (treeId + "_data"); } catch(e) { return null; } }
  74. function getNodeLink (node) { return node.childNodes[node.childNodes.length - 1]; }
  75. function TreeView_HoverNode (treeId, node)
  76. {
  77. var tree = getTree (treeId);
  78. if (tree == null)
  79. return;
  80. if (tree.hoverClass != null) {
  81. if (node.normalClass == null)
  82. node.normalClass = node.className;
  83. node.className = node.normalClass + " " + tree.hoverClass;
  84. }
  85. if (tree.hoverLinkClass != null) {
  86. var nodeLink = getNodeLink(node);
  87. if (nodeLink.normalClass == null)
  88. nodeLink.normalClass = nodeLink.className;
  89. nodeLink.className = nodeLink.normalClass + " " + tree.hoverLinkClass;
  90. }
  91. }
  92. function TreeView_UnhoverNode (node) {
  93. if (node != null && node.normalClass != null)
  94. node.className = node.normalClass;
  95. var nodeLink = getNodeLink(node);
  96. if (nodeLink != null && nodeLink.normalClass != null)
  97. nodeLink.className = nodeLink.normalClass;
  98. }