demoDynamicLeftFrame.asp
上传用户:jdr1jdr
上传日期:2013-05-07
资源大小:68k
文件大小:6k
源码类别:

JavaScript

开发平台:

JavaScript

  1. <%@ Language=VBScript %>
  2. <% 
  3. option explicit 
  4. Response.Expires=-1
  5. %>
  6. <!-- The Response.Expires=-1 will make sure the page is not cached.
  7.      If the page is cached and the database changes, the new tree will not be shown -->
  8. <!--
  9.      (Please keep all copyright notices.)
  10.      This page document includes the Treeview script.
  11.      Script found at: http://www.treeview.net
  12.      Author: Marcelino Alves Martins
  13. -->
  14. <%
  15. Dim databaseDir, Conn
  16. 'Change this to a path (c:...) if the database is not in the same dir of the 
  17. 'current file
  18. databaseDir = Server.MapPath("demoDynamic.mdb")
  19. Set Conn = Server.CreateObject("ADODB.Connection")
  20. Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & databaseDir)
  21. ' This is a recursive function; it will find the children directly under a node
  22. ' and then call itself for each of those children in order to find the grand-children.
  23. ' For each entry in the DB that this function finds, it sends a snippet of 
  24. ' JavaScript to the browser with the Treeview commands necessary for the 
  25. ' construction of a node (folder or "doc")
  26. '   conn: is an ADODB.Connection opened on a database with a NodesTable table
  27. '   parentId: is the value of the ParentID field for a record in the database
  28. '   parentObject: is the name of the JavaScript variable used to define the parent
  29. sub outputJavascriptForRoot(Conn)
  30.     dim rsHits, queryString
  31.     queryString = "SELECT NodeID, NodeName, IsFolder, ParentID, Link FROM NodesTable WHERE (ParentID=-1)"
  32.     Set rsHits = Server.CreateObject("ADODB.Recordset")
  33.     rsHits.Open queryString, Conn ' It should reeturn one and one only
  34.     outputJavascriptForSubFolder Conn, rsHits("NodeID"), rsHits("NodeName"), "fSub1"
  35.     
  36.     response.write "foldersTree = fSub1"
  37. end sub
  38. sub outputJavascriptForSubFolder(Conn, folderId, nodeName, fName)
  39.     dim rsHits, queryString, gFldStr, gLnkStr, fi, subFolders, di
  40.     queryString = "SELECT NodeID, NodeName, IsFolder, ParentID, Link FROM NodesTable WHERE ((ParentID=" & folderId & ") AND (IsFolder=True)) ORDER BY NodeName"
  41.     Set rsHits = Server.CreateObject("ADODB.Recordset")
  42.     rsHits.Open queryString, Conn
  43.     fi=1
  44.     do while not rsHits.EOF
  45.         outputJavascriptForSubFolder Conn, rsHits("NodeID"), rsHits("NodeName"), fName & "Sub" & fi
  46.         rsHits.MoveNext
  47.         fi=fi+1
  48.     loop
  49.     response.write fName & " = " & "gFld('" & nodeName & "', 'javascript:parent.op();')" & VbCrLf
  50.     response.write fName & ".xID = " & folderId & VbCrLf
  51.     ' Call the addChildren function
  52.     response.write fName & ".addChildren(["
  53.     ' member of the list argument to addChildren
  54.     if not rsHits.BOF then rsHits.MoveFirst()
  55.     fi=1
  56.     do while not rsHits.EOF
  57.         if fi>1 then response.write ", "
  58.         response.write fName & "Sub" & fi
  59.         rsHits.MoveNext
  60.         fi=fi+1
  61.     loop
  62.     rsHits.close
  63.     subFolders = fi-1 'Count how many
  64.     queryString = "SELECT NodeID, NodeName, Link FROM NodesTable WHERE ((ParentID=" & folderId & ") AND (IsFolder=False)) ORDER BY NodeName"
  65.     rsHits.Open queryString, Conn
  66.     di = 1
  67.     do while not rsHits.EOF
  68.         if di>1 or subFolders > 0 then response.write ", "
  69.         response.write "['" & rsHits("NodeName") & "', '" & rsHits("Link") &"']"
  70.         rsHits.MoveNext
  71.         di = di + 1
  72.     loop
  73.     response.write "])" & VbCrLf 'Close addChildren function
  74.     ' xID's for docs
  75.     if not rsHits.BOF then rsHits.MoveFirst()
  76.     di = subFolders
  77.     do while not rsHits.EOF
  78.         response.write fName & ".children[" & di & "].xID = " & rsHits("NodeID") & VbCrLf
  79.         rsHits.MoveNext
  80.         di = di+1
  81.     loop
  82.     rsHits.close
  83. end sub
  84. %>
  85. <html>
  86. <head>
  87. <title>Tree from database</title>
  88. <style>
  89.    BODY {background-color: white}
  90.    TD {font-size: 10pt; 
  91.        font-family: verdana,helvetica; 
  92.    text-decoration: none;
  93.    white-space:nowrap;}
  94.    A  {text-decoration: none;
  95.        color: black}
  96. </style>
  97. <!-- As in a client-side built tree, all the tree infrastructure is put in place
  98.      within the HEAD block, but the actual tree rendering is trigered within the
  99.      BODY -->
  100. <!-- Code for browser detection -->
  101. <script src="ua.js"></script>
  102. <!-- Infrastructure code for the tree -->
  103. <script src="ftiens4.js"></script>
  104. <!-- Execution of the code that actually builds the specific tree.
  105.      The variable foldersTree creates its structure with calls to
  106.  gFld, insFld, and insDoc -->
  107. <script>
  108. USETEXTLINKS = 1
  109. STARTALLOPEN = 0
  110. PRESERVESTATE = 1
  111. ICONPATH = '' 
  112. HIGHLIGHT = 1
  113. <% 
  114. outputJavascriptForRoot Conn
  115. %>
  116. // Load a page as if a node on the tree was clicked (synchronize frames)
  117. // (Highlights selection if highlight is available.)
  118. function loadSynchPage(xID) 
  119. {
  120. var folderObj;
  121. docObj = parent.treeframe.findObj(xID);
  122. docObj.forceOpeningOfAncestorFolders();
  123. parent.treeframe.clickOnLink(xID,docObj.link,'basefrm'); 
  124.     //Scroll the tree window to show the selected node
  125.     //Other code in these functions needs to be changed to work with
  126.     //frameless pages, but this code should, I think, simply be removed
  127.     if (typeof parent.treeframe.document.body != "undefined") //scroll doesn work with NS4, for example
  128.         parent.treeframe.document.body.scrollTop=docObj.navObj.offsetTop
  129. </script>
  130. </head>
  131. <body topmargin=16 marginheight=16>
  132. <!-- By removing the follwoing code you are violating your user agreement.
  133.      Corporate users or any others that want to remove the link should check 
  134.  the online FAQ for instructions on how to obtain a version without the link -->
  135. <!-- Removing this link will make the script stop from working -->
  136. <div style="position:absolute; top:0; left:0; "><table border=0><tr><td><font size=-2><a style="font-size:7pt;text-decoration:none;color:silver" href="http://www.treemenu.net/" target=_blank>JavaScript Tree Menu</a></font></td></tr></table></div>
  137. <!-- Build the browser's objects and display default view of the 
  138.      tree. -->
  139. <script>
  140. initializeDocument()
  141. //Click the Parakeet link
  142. loadSynchPage(506027036)
  143. </script>
  144. <noscript>
  145. A tree for site navigation will open here if you enable JavaScript in your browser.
  146. </noscript>
  147. </body>
  148. </html>