О классе, который генерирует структуру дерева каталогов
Эта программа имеет два файла test.asp, tree.asp и некоторые файлы значков
1. Код охватывающего класса Call Call Call Call Clless выглядит следующим образом
<%@ Language = vbscript%> <html> <Head> <link rel = "styleSheet" href = "tree.css"> <Teal> Tree </title> </head> <!-#include file = "tree.asp"-> <%'========================================================================================================================================================================================= '=================================================================================== Установите myTree2 = новое дерево mytree2.top = 10 mytree2.left = 10 mytree2.expandimage = "plus.gif" mytree2.collapseimage = "minus.gif" mytree2.leafimage = "webpage.gif". Обратите внимание, что интенция, используемая для представления иерархии set node1 = mytree2.create ("Scrodeech") Scdereech ("Scrodeech") Scdereech (") Node1.createchild ("server") set secsubnode1 = subnode1.createchild ("html") secsubnode1.createchild "<a href =" "http://127.0.0.1/" "> asp </a>" secsubnode1.createchild ". Href = "" http://127.0.0.1/ ""> php </a> "secsubnode1.createchild" <a href = "" http://127.0.0.1/ ""> jsp </a> "Selet subnode2 = node1. HREF=""#"">winnt</A>" SubNode2.CreateChild "<A HREF=""#"">win2000</A>" Set Node2 = MyTree2.CreateChild("Desktop") Node2.CreateChild "<A HREF=""#"">Area Code Lookup</A>" Node2.CreateChild "<A HREF=""#"">Arin Based Whois Search </a> "node2.createchild" <a href = ""#""> карта часовых поясов мира </a> "mytree2.draw () Установить mytree2 = ничего %> </body> </html>2. Код определения класса Tree.asp выглядит следующим образом
<% '************************************************************* Боги ». ' - Viva La Microsoft! '************************************************************************************************************* End property private sub class_initialize () mszname = "node" & cstr (gbltreenodecount) gbltreeNodecount = gbltreeNodecount + 1 mbchildrenInitialized = false expated = false end sub cract_mterminat End End end sub private sub initchildlist () set mcolchildren = server.createobject ("scripting.dictionary") mbchildrenininitialized = true end sub private sub loadstate () if request (mszname) = "1" или запрос ("togglenode") = mszname, а затем exped = true end end end sub public function (szvval ilsid), а затем и true end end end end end sub public fundiald (szvvilue). Initchildlist () set createChild = new TreeNode createChild.value = szValue createChild.expandimage = ExpandImage createChild.collapseimage = collapseimage createChild.Leafimage = LeafMage McolChildren.Add McOlchild.count + 1, CreateChild End Funct vbcrlf response.write "<tr> <td>" & vbcrlf, если расширен, то response.write "<a href =" "javascript: collapsEnode (" "& mszname &") "> <img src =" "& collapseImage &" "0"> </a> "& vbcrl "<img src =" "" & leafimage & "" "border = 0>" & vbcrlf else response.write "<a href =" "javascript: expandNode (" & mszname & "')" "> <img src =" "& expandImage &" "0"> </a> "& vbcr vbcrlf response.write "<td>" & value & "</td> </tr>" & vbcrlf, если расширен, то response.write "<input type =" "hidden" "name =" "" & mszname & "" "value =" "1"> "& vbcrlf, если Mbchildrenialial, то ответ. vbCrLf Response.Write "<td>" & vbCrLf For Each ChildNode In mcolChildren.Items ChildNode.Draw() Next Response.Write "</td>" & vbCrLf Response.Write "</tr>" & vbCrLf End If End If Response.Write "</table>" & vbCrLf End Sub End Class Class Tree Public Top Public Left Public ExpandImage Public CollapseImage Public Leafimage Private MSZPosition Частная McOlchildren Общественная собственность Публика Absolute (BDATA), если BDATA, то MSZPOSION = "Absolute" Else MSZPOSION = "Относительное" конечное свойство 0 mnleft = 0 mnposition = "absolute" end sub private sub class_terminate () mcolchildren.removeall () set mcolchildren = ничто из конечных sub public function createchild (szvalue) set createChild = new TreeNode createChild.value = szvalue createChild.ExpandImage = exprandImage createChild. CreateChild.Leafimage = Leafimage McolChildren.Add McOlchildren.Count + 1, Функция конечной формы CreateChild Public Subloadtemplate (szfilename) Dim objworkingNode Dim colnodestack dim fsobj, tsobj dim szline dim ncurrdepth, nnextdepth set solnodestack = server.crectebject (screctipthe.crection.crection.crection. fsobj = createObject ("scripting.filesystemobject") Установите tsobj = fsobj.opentextfile (szfilename, 1) ncurrdepth = 0, а не tsobj.atendofline nnextdepth = 1 szline = tsobj.readline () if ncurrdepth = 0, тогда objWorkking = tsobj.readline () if ncurrdepth = 0, тогда objWorkkkingne = = objWorkkkkkingne. CreateChild (trim (szline))) ncurrdepth = 1 else while mid (szline, nnextdepth, 1) = vbtab или mid (szline, nnextdepth, 1) = "" nnextdepth = nnextdepth + 1 wend if nnextdepth> 1, тогда szline = trim (szline, nnext -inexlith), если szline = trim (szline, nnextline) ifrline), если szline <> szline). nnextdepth> ncurrdepth then if colnodestack.exists (ncurrdepth), затем установите colnodestack.item (ncurrdepth) = objworkingnode else colnodestack.add ncurrdepth, objworkingnode end if objworkingnode = objworknode.crreatechil 1 elseif nnextdepth <= ncurrdepth the, если nnextdepth> 1, то nnextdepth = nnextdepth - 1, в то время как не colnodestack.exists (nnextdepth) и nnextdepth> nnextdepth = nnextdepth - 1 objworkingnode = colnodeStack.itempth.itempth -xtepth -xtepth = objworkingNode.createChild (szline) nnextDepth = nnextDepth + 1 els Public sub Draw () addClientScript () response.write "<div id =" "treectrl" "style =" "Left:" & Left & "px; Верх: "& top &" px; Позиция: "& mszposition &"; ">" & vbcrlf response.write "<form name =" "treectrlfrm" "action =" "" & request.servervariables ("script_name") & "" Method = "" get ">" & vbcrl response.write "<table0"> "& vbcrlf response" & vbcrlf "& vbcrl" и vbcrlf response "& vbcrl. vbcrlf response.write "<input type =" "hidden" "name =" "togglenode" "value =" ""> "& vbcrlf response.write" </form> "& vbcrlf response.write" </div> "& vbcrlf end sub private sub private () %> <script rangue =" javascript "> function"> function "> function"> functdodememe () excemAme () expandEmeme expandEm if (document.layers! = null) {document.treectrl.document.treectrlfrm.togglenode.value = sznodeName; Document.all ["treectrlfrm"]. Precat (); document.treectrlfrm.elements [sznodeName] .value = -1; document.treectrlfrm.submit (); }} </script> < % end sub end class %>