เกี่ยวกับคลาสที่สร้างโครงสร้างต้นไม้ไดเรกทอรี
โปรแกรมนี้มีสองไฟล์ test.asp, tree.asp และไฟล์ไอคอนบางไฟล์
1. การทดสอบระดับการโทรที่ครอบคลุมรหัสต้นไม้มีดังนี้
<%@ language = vbscript%> <html> <head> <link rel = "stylesheet" href = "tree.css"> <title> ต้นไม้ </title> </head> <!-#include file = "tree.asp"-> <%'========================================== '===========================================' วิธีการนี้จะเหมาะที่สุดสำหรับการสร้างต้นไม้แบบไดนามิกโดยใช้ .. next loops และอื่น ๆ SET MYTREE2 = ใหม่ Tree MyTree2.top = 10 mytree2.left = 10 mytree2.expandimage = "plus.gif" mytree2.collapseimage = "minus.gif" mytree2.leafimage = "webpage.gif" node1.CreateChild ("เซิร์ฟเวอร์") ตั้งค่า secsubNode1 = subnode1.Createchild ("html") secsubnode1.createchild "<a href =" "http://127.0.0.1/"> asp </a> " href = "" http://127.0.0.1/ ""> php </a> "secsubnode1.createchild" <a href = "" http://127.0.0.1/ "> jsp </a> href = ""#""> winnt </a> "subnode2.createchild" <a href = ""#""> win2000 </a> "ตั้งค่า node2 = mytree2.createchild (" เดสก์ท็อป ") node2.createchild" href = ""#""> arin ตาม whois search </a> "node2.createchild" <a href = ""#""> แผนที่โซนเวลาโลก </a> "mytree2.draw () ตั้ง mytree2 = ไม่มีอะไร %> </body> </html>2. รหัสคำจำกัดความของ tree.asp คลาสมีดังนี้
<% '********************************************************************************************************************************************************************************************* รหัสพระเจ้า " ' - Viva La Microsoft! '******************************************************** DIM GBLTREENODECOUNT: GBLTREENODECOUNT = 1 คลาส TREENODE PUBLIC PUVER EXPOUNTIMAGE Public Public Public Public Public Propertycount Propertycount ย่อย class_initialize () mszname = "node" & cstr (gbltreenodecount) gbltreenodecount = gbltreenodecount + 1 mbchildreninitialized = false expanded = false sub private class_terminate End Sub Private Sub InitchildList () SET MCOLCHILDREN = Server.CreateObject ("Scripting.dictionary") MBCHILDRENINITIALIZED = True End Sub Private Sub LoadState () หากคำขอ (mszName) = "1" หรือคำขอ initchildList () ตั้งค่า createchild = ใหม่ treenode createchild.value = szvalue createchild.expandimage = expandimage createchild.CollapseImage = CORTECHILD.LEAFIMAGE = LOADIMAGE MCOLCHILDREN vbcrlf response.write "<tr> <td>" & vbcrlf หากขยายการตอบสนองต่อการเขียน "<a href =" "javascript: cloundrapsenode ('" & mszname & "')"> <img src = "" " src = "" "& leafimage &" "" border = 0> "& vbcrlf resement.write" <a href = "" javascript: expandNode ('"& mszname &"') "> <img src =" " "<td>" & value & "</td> </tr>" & vbcrlf หากขยายการตอบสนองการเขียน "<อินพุต type =" "hidden" "name =" "" mszname & "" "" "1" ">" & vbcrlf ถ้า mbchildreninitialized "<td>" & vbcrlf สำหรับเด็กแต่ละคนใน mcolchildren.items childnode.draw () การตอบสนองถัดไปเขียน "</td>" & vbcrlf response.write "</tr>" & vbcrlf สิ้นสุดลง ทรัพย์สินสาธารณะของ McOlchildren ให้ Absolute (BDATA) ถ้า BDATA ดังนั้น MSZPOSITION = "Absolute" Else MSZPOSITION = "สัมพัทธ์" ทรัพย์สินสาธารณะได้รับคุณสมบัติแน่นอนได้รับสัมบูรณ์ () สัมบูรณ์ = CBOOL (MSZPOSITION = "Absolute") = "Absolute" Sub Private Sub class_terminate () McOlchildren.removeAll () Set McOlchildren = ไม่มีอะไรสิ้นสุดฟังก์ชั่นสาธารณะ createchild (szvalue) ตั้งค่า createchild = ใหม่ treenode createchild.value = szvalue createchild.expandimage = exputiMage mcolchildren.add mcolchildren.count + 1, createchild end function loadtemplate สาธารณะ (szfilename) dim objworkingnode dim colnodestack dim fsobj, tsobj dim szline dim ncurrdepth, nnextdepth set colnodestack = เซิร์ฟเวอร์ createObject ("scripting.filesystemobject") ตั้งค่า tsobj = fsobj.opentextfile (szfilename, 1) ncurrdepth = 0 ในขณะที่ไม่ใช่ tsobj.atendofline nnextdeD = 1 szline = tsobj.redline () ncurrdepth = 1 else ในขณะที่กลาง (szline, nnextdepth, 1) = vbtab หรือ mid (szline, nnextdepth, 1) = "" nnextdepth = nnextdepth + 1 เวนด์ถ้า nnextDepth> 1 จากนั้น szline = trim (mid (szline, nnextd) ncurrdepth ถ้า colnodestack.exists (ncurrdepth) จากนั้นตั้งค่า colnodestack.item (ncurrdepth) = objworkingnode อื่น colnodestack.add ncurrdepth, objworkingnode หากตั้ง objworkingnode = objworkingnode.createchild nnextdepth <= ncurrdepth จากนั้นถ้า nnextdepth> 1 จากนั้น nnextdepth = nnextdepth - 1 ในขณะที่ไม่ได้ colnodestack.exists (nnextdepth) และ nnextdepth> 1 nnextdepth = nnextdepth -1 objworkingNode.Createchild (szline) nnextdepth = nnextdepth + 1 อื่นตั้ง objworkingnode = createchild (szline) สิ้นสุดถ้า ncurrdepth = nnextdepth end ถ้าสิ้นสุดถ้า wend tsobj.close Sub Draw () AddClientScription () Response.write "<div id =" "treectrl" "style =" "ซ้าย:" & ซ้าย & "px; ด้านบน: "& top &" px; ตำแหน่ง: "& mszposition &"; ""> "& vbcrlf response.write" <form name = "" treectrlfrm "" action = "" "& request.serverVariables (" script_name ") &" "" "get"> "& vbcrlf response.write" vbcrlf response.write "<input type =" "hidden" "name =" "togglenode" "value =" "" ">" & vbcrlf response.write "</form>" & vbcrlf response.write "</div>" & vbcrlf if (document.layers! = null) {document.treectrl.document.treectrlfrm.togglenode.value = sznodename; Document.All ["treectrlfrm"]. subment (); document.treectrlfrm.elements [sznodename] .Value = -1; document.treectrlfrm.submit (); }} </script> < % end sub end class %>