TreeView.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. function TreeView_ToggleExpand (treeId, nodeId) {
  2. var tree = getTree (treeId);
  3. var spanId = treeId + "_" + nodeId;
  4. var node = document.getElementById (spanId);
  5. var expand = node.style.display == "none";
  6. if (tree.populateFromClient && expand && node.populated != true && (node.innerHTML.length == 0 || node.hasError)) {
  7. WebForm_DoCallback (treeId, nodeId, TreeView_PopulateCallback, treeId + " " + nodeId, TreeView_ErrorCallback)
  8. return;
  9. }
  10. if (!node.hasError)
  11. node.populated = true;
  12. node.style.display = expand ? "block" : "none";
  13. var inputStates = document.forms[0][treeId + "_ExpandStates"];
  14. TreeView_SetNodeFlag (inputStates, nodeId, expand);
  15. if (tree.showImage) {
  16. var image = document.getElementById (spanId + "_img");
  17. if (tree.defaultImages) {
  18. if (expand) image.src = image.src.replace ("plus","minus");
  19. else image.src = image.src.replace ("minus","plus");
  20. } else {
  21. if (expand) image.src = tree.collapseImage;
  22. else image.src = tree.expandImage;
  23. }
  24. var alt;
  25. if (expand) alt = tree.collapseAlt;
  26. else alt = tree.expandAlt;
  27. if (alt.indexOf ("{0}") != -1) {
  28. var txt = document.getElementById (spanId + "_txt").innerText;
  29. alt = alt.replace ("{0}", txt);
  30. }
  31. image.alt = alt;
  32. }
  33. }
  34. function TreeView_SetNodeFlag (flagInput, nodeId, set)
  35. {
  36. if (!set) flagInput.value = flagInput.value.replace ("|" + nodeId + "|", "|");
  37. else flagInput.value = flagInput.value + nodeId + "|";
  38. }
  39. function TreeView_PopulateCallback (data, ids)
  40. {
  41. var idArray = ids.split (" ");
  42. var tree = getTree (idArray[0]);
  43. var spanId = idArray[0] + "_" + idArray[1];
  44. var node = document.getElementById (spanId);
  45. node.populated = true;
  46. if (data != "*") {
  47. node.innerHTML = data;
  48. } else {
  49. if (tree.showImage && tree.noExpandImage != null) {
  50. var image = document.getElementById (spanId + "_img");
  51. image.src = tree.noExpandImage;
  52. }
  53. }
  54. TreeView_ToggleExpand (idArray[0], idArray[1]);
  55. TreeView_SetNodeFlag (document.forms[0][idArray[0] + "_PopulatedStates"], idArray[1], true);
  56. }
  57. function TreeView_ErrorCallback (data, ids)
  58. {
  59. var idArray = ids.split (" ");
  60. var node = document.getElementById (idArray[0] + "_" + idArray[1]);
  61. node.innerHTML = data;
  62. node.populated = true;
  63. TreeView_ToggleExpand (idArray[0], idArray[1]);
  64. node.populated = false;
  65. node.hasError = true;
  66. }
  67. function getTree (treeId) { return eval (treeId + "_data"); }