Über die Klasse, die eine Verzeichnisbaumstruktur erzeugt
Dieses Programm enthält zwei Dateien test.asp, tree.asp und einige Icon -Dateien
1. Die Test.asp -Anrufklasse Spanning Tree Code lautet wie folgt
<%@ Language=VBScript %> <html> <head> <link rel="stylesheet" href="tree.css"> <title>tree</title> </head> <!-- #include file="tree.asp" --> <% '======================================== ' BUILDING A TREE PROGRAMATICALLY '=======================================' Dieser Ansatz eignet sich am besten für den Aufbau dynamischer Bäume für.. -Next -Loops und so. Setzen Sie mytree2 = neuer Baum mytree2.top = 10 mytree2.left = 10 mytree2.expandimage = "plus.gif" mytree2.collapseimage = "minus.gif" mytree2.leafimage = "webage.gif" 'HINWEIS Die Eindrückung, mit der die Hierarchy -Set -Set -Set1 = MyTree2.CreatEn dargestellt ist, nodary = myTree2.creatE1 = MyTree2.creatE1 = MyTree2.creat "). Node1.createchild ("server") setzen secSubnode1 = subnode1.createchild ("html") secSubnode1.createchild "<a href =" "http://127.0.0.1/"> ASP </a> "secsubnode1.createchild1.Createchild" <a. Href = "" http://127.0.1/ ""> php </a> "Secsubnode1.Createchild" <a href = "" http://127.0.0.1/ ""> jsp </a> "setze subnode2 = node1. createchild (" os ") subnode2 = node1. createchild (" os ") subnode2 = node1. createchild (" os ") subnode 2 Href = ""#""> winnt </a> "subnode2.createchild" <a href = ""#""> win2000 </a> "setze node2 = mytree2.createchild (" Desktop ") Node2.Createchild" <a href = "#"#"#"> ABREI -CODE -CODE </a ". Whois such </a> "node2.createchild" <a href = ""#"" "> World Time Zone Map </a>" mytree2.draw () Setzen Sie MyTree2 = nichts %> </body> </html>2. Der Definitionscode von Tree.asp -Klasse lautet wie folgt
<% '*********** Götter ". ' - Viva la Microsoft! '************ Eigenschaft Private sub class_initialize () mszname = "node" & cstr (gblreenodeCount) gblTreenodeCount = gblreenodeCount + 1 mbchildreninitialized = false erweitert = falsches Ende sub privat sub class_terdy () Wenn mbChildreninitialisierte und isobjekt (mcolchildren) dann mcolchildren (mcolchildren) dann mcolchildren (mcolchildren) dann mcolchildren (mcolchildren). Wenn End -Sub -private subchildlist () mcolchildren setze InitChildList() Set CreateChild = New TreeNode CreateChild.Value = szValue CreateChild.ExpandImage = ExpandImage CreateChild.CollapseImage = CollapseImage CreateChild.LeafImage = LeafImage mcolChildren.Add mcolChildren.Count + 1, CreateChild End Function Public Sub Draw() LoadState() Response.Write "<table0"">" & vbcrlf response.write "<tr> <td>" & vbcrlf Wenn erweitert dann response "<img src=""" & LeafImage & """ border=0>" & vbCrLf Else Response.Write "<a href=""javascript:expandNode('" & mszName & "')""><img src=""" & ExpandImage & """0"></a>" & vbCrLf End If Response.Write "</td>" & vbCrLf Response.write "<td>" & value & "</td> </tr>" & vbcrlf Wenn erweitert, dann Antwort. "<td>" & vbcrlf für jeden childnode in mcolchildren.items childnode.draw () Nächste Antwort.Write "</td>" & vbcrlf response Mcolchildren öffentliches Eigentum lassen Absolute (bdata) Wenn bdata dann mszPosition = "absolute" mszPosition = "relative" End -Eigenschaft öffentliche Eigenschaft Get absolute () Absolute = CBOOL (mszPosition = "Absolute") End -Eigenschaft Private Sub Class_initialize () set mcolchildren = sercreates. Mnposition = "Absolute" End Sub Private sub class_terminate () mcolchildren.removeall () set mcolchildren = nichts Ende Sub Public Function CreateChild (szvalue) set CreateChild = new treenode createchild.value = Szvalue createchild.expandimage = expandimage createchild.collapsimage = createchild. mcolchildren.add mcolchildren.count + 1, Createchild Endfunktion Public Sub LoadTemplate (SzFileName) Dim ObjworkingNode Dim colnodestack dim fsobj, tsobj dim szline dim ncurrdepth, nNextdepth set colnodestack = server. CreateObject ("Scripting.FilesSystemObject") Set tsobj = fsObj.opentextFile (szFileName, 1) ncurrdepth = 0, während nicht tsobj.atendofline nNextdepth = 1 szline = tsobj.readline () (), wenn ncurrdepdel = 0 gesetzt wurde, dann objwitching = createch () (SUrDepdel). ncurrdepth = 1 sonst während Mid (Szline, nNextDepth, 1) = Vbtab oder Mid (Szline, nNextDepth, 1) = "nNextDepth = nNextDepth + 1 Wend if nnextDepth> 1 dann szline Wenn colnodestack.exists (ncurrdepth) dann colnodestack.item (ncurrdepth) = objworkingNode else colnodestack.add ncurdepth, objworkingNode end, wenn objworkingNode = objworkingNode.creatEp. (szline) nncurdepe, setze. ncurrdepth dann wenn objworkingNode.createchild (szline) nNextDepth = nNextDepth + 1 SET OBJWORKINGNODE = CreateChild (szline) enden Wenn ncurrdepth = nNextDepth End, wenn das Ende der Ende ist, wenn das Ende von tsobj.close () set adonical subsobj = colndoBJ = colnodaD -subsobj = colnodaD -subsobJ = colnodestack.removall () Set -Set -Set -Set -Setze -Setze -Setze -Setze -Setze -Set -Set -Setze -Set -Setze -Set -Setze -Set -Setze -Set. Sub draw () addClientscript () response.write "<div id =" "treectrl" "style =" "links:" & links & "px; Oben: "& Top &" PX; Position: "& mszPosition &"; ""> "& vbcrlf response vbcrlf response.write "<Eingabe type =" "Hidden" "name =" "Togglenode" "value =" ""> "& vbcrlf response.write" </form> "& vbcrlf response if (document.layers! = null) {document.treectrl.document document.Alle ["Treectrlfrm"]. document.treectrlfrm.elements [sznodename] .Value = -1; document.treectrlfrm.submit (); }} </script> < % End Sub End Class %>