国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

asp下生成目錄樹結構的類

2024-05-04 11:00:57
字體:
來源:轉載
供稿:網友

關于生成目錄樹結構的類

本程序有兩文件test.asp 和tree.asp 還有一些圖標文件

1。test.asp 調用類生成樹 代碼如下

<%@ Language=VBScript %> <html> <head> <link rel="stylesheet" href="tree.css"> <title>tree</title> </head> <!-- #include file="tree.asp" --> <% '======================================== ' BUILDING A TREE PROGRAMATICALLY '======================================== ' This approach would be best suited for building ' dynamic trees using For..Next loops and such. Set MyTree2 = New Tree MyTree2.Top = 10 MyTree2.Left = 10 MyTree2.ExpandImage = "plus.gif" MyTree2.CollapseImage = "minus.gif" MyTree2.LeafImage = "webpage.gif" ' Notice the indentation used to reprensent the hierarchy Set Node1 = MyTree2.CreateChild("script") Set SubNode1 = Node1.CreateChild("server") Set secSubNode1 = SubNode1.CreateChild("html") secSubNode1.CreateChild "<A HREF=""http://127.0.0.1/"">asp</A>" secSubNode1.CreateChild "<A HREF=""http://127.0.0.1/"">php</A>" secSubNode1.CreateChild "<A HREF=""http://127.0.0.1/"">jsp</A>" Set SubNode2 = Node1.CreateChild("os") SubNode2.CreateChild "<A 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=""#"">World Time Zone Map</A>" MyTree2.Draw() Set MyTree2 = Nothing %> </BODY> </HTML> 

2。tree.asp 類的定義 代碼如下

<% '****************************************************** ' Author: Jacob Gilley ' Email: avis7@airmail.net ' My Terms: You can use this control in anyway you see fit ' cause I have no means to enforce any guidelines ' or BS that most developers think they can get ' you to agree to by spouting out words like ' "intellectual property" and "The Code Gods". ' - Viva la Microsoft! '****************************************************** Dim gblTreeNodeCount:gblTreeNodeCount = 1 Class TreeNode Public Value Public ExpandImage Public CollapseImage Public LeafImage Public Expanded Private mszName Private mcolChildren Private mbChildrenInitialized Public Property Get ChildCount() ChildCount = mcolChildren.Count End Property Private Sub Class_Initialize() mszName = "node" & CStr(gblTreeNodeCount) gblTreeNodeCount = gblTreeNodeCount + 1 mbChildrenInitialized = False Expanded = False End Sub Private Sub Class_Terminate() If mbChildrenInitialized And IsObject(mcolChildren) Then mcolChildren.RemoveAll() Set mcolChildren = Nothing End If End Sub Private Sub InitChildList() Set mcolChildren = Server.CreateObject("Scripting.Dictionary") mbChildrenInitialized = True End Sub Private Sub LoadState() If Request(mszName) = "1" Or Request("togglenode") = mszName Then Expanded = True End If End Sub Public Function CreateChild(szValue) If Not mbChildrenInitialized Then 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 "<table border=""0"">" & vbCrLf Response.Write "<tr><td>" & vbCrLf If Expanded Then Response.Write "<a href=""javascript:collapseNode('" & mszName & "')""><img src=""" & CollapseImage & """ border=""0""></a>" & vbCrLf ElseIf Not mbChildrenInitialized Then Response.Write "<img src=""" & LeafImage & """ border=0>" & vbCrLf Else Response.Write "<a href=""javascript:expandNode('" & mszName & "')""><img src=""" & ExpandImage & """ border=""0""></a>" & vbCrLf End If Response.Write "</td>" & vbCrLf Response.Write "<td>" & Value & "</td></tr>" & vbCrLf If Expanded Then Response.Write "<input type=""hidden"" name=""" & mszName & """ value=""1"">" & vbCrLf If mbChildrenInitialized Then Response.Write "<tr><td> </td>" & 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 Private mcolChildren Public Property Let Absolute(bData) If bData Then mszPosition = "absolute" Else mszPosition = "relative" End Property Public Property Get Absolute() Absolute = CBool(mszPosition = "absolute") End Property Private Sub Class_Initialize() Set mcolChildren = Server.CreateObject("Scripting.Dictionary") mnTop = 0 mnLeft = 0 mszPosition = "absolute" End Sub Private Sub Class_Terminate() mcolChildren.RemoveAll() Set mcolChildren = Nothing End Sub Public Function CreateChild(szValue) 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 LoadTemplate(szFileName) Dim objWorkingNode Dim colNodeStack Dim fsObj, tsObj Dim szLine Dim nCurrDepth, nNextDepth Set colNodeStack = Server.CreateObject("Scripting.Dictionary") Set fsObj = CreateObject("Scripting.FileSystemObject") Set tsObj = fsObj.OpenTextFile(szFileName, 1) nCurrDepth = 0 While Not tsObj.AtEndOfLine nNextDepth = 1 szLine = tsObj.ReadLine() If nCurrDepth = 0 Then Set objWorkingNode = CreateChild(Trim(szLine)) nCurrDepth = 1 Else While Mid(szLine,nNextDepth,1) = vbTab Or Mid(szLine,nNextDepth,1) = " " nNextDepth = nNextDepth + 1 WEnd If nNextDepth > 1 Then szLine = Trim(Mid(szLine,nNextDepth)) If szLine <> "" Then If nNextDepth > nCurrDepth Then If colNodeStack.Exists(nCurrDepth) Then Set colNodeStack.Item(nCurrDepth) = objWorkingNode Else colNodeStack.Add nCurrDepth, objWorkingNode End If Set objWorkingNode = objWorkingNode.CreateChild(szLine) nCurrDepth = nCurrDepth + 1 ElseIf nNextDepth <= nCurrDepth Then If nNextDepth > 1 Then nNextDepth = nNextDepth - 1 While Not colNodeStack.Exists(nNextDepth) And nNextDepth > 1 nNextDepth = nNextDepth - 1 WEnd Set objWorkingNode = colNodeStack.Item(nNextDepth) Set objWorkingNode = objWorkingNode.CreateChild(szLine) nNextDepth = nNextDepth + 1 Else Set objWorkingNode = CreateChild(szLine) End If nCurrDepth = nNextDepth End If End If End If WEnd tsObj.Close() Set tsObj = Nothing Set fsObj = Nothing colNodeStack.RemoveAll() Set colNodeStack = Nothing End Sub Public Sub Draw() AddClientScript() Response.Write "<div id=""treectrl"" style=""left: " & Left & "px; top: " & Top & "px; position: " & mszPosition & ";"">" & vbCrLf Response.Write "<form name=""treectrlfrm"" action=""" & Request.ServerVariables("SCRIPT_NAME") & """ method=""get"">" & vbCrLf Response.Write "<table border=""0"">" & vbCrLf Response.Write "<tr><td>" & vbCrLf For Each ChildNode In mcolChildren.Items ChildNode.Draw() Next Response.Write "</td></tr>" & vbCrLf Response.Write "</table>" & vbCrLf Response.Write "<input type=""hidden"" name=""togglenode"" value="""">" & vbCrLf Response.Write "</form>" & vbCrLf Response.Write "</div>" & vbCrLf End Sub Private Sub AddClientScript() %> <script language="JavaScript"> function expandNode(szNodeName) { if(document.layers != null) { document.treectrl.document.treectrlfrm.togglenode.value = szNodeName; document.treectrl.document.treectrlfrm.submit(); } else { document.all["treectrlfrm"].togglenode.value = szNodeName; document.all["treectrlfrm"].submit(); } } function collapseNode(szNodeName) { if(document.layers != null) { document.treectrl.document.treectrlfrm.elements[szNodeName].value = -1; document.treectrl.document.treectrlfrm.submit(); } else { document.treectrlfrm.elements[szNodeName].value = -1; document.treectrlfrm.submit(); } } </script> <% End Sub End Class %>             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武宁县| 阳春市| 招远市| 六安市| 崇左市| 仲巴县| 香港 | 冀州市| 永新县| 长海县| 彩票| 彰化县| 舒城县| 汶上县| 宣威市| 乾安县| 建阳市| 奇台县| 长宁区| 如东县| 凤阳县| 黎城县| 祥云县| 宝丰县| 五指山市| 庆元县| 讷河市| 兴宁市| 仪征市| 自贡市| 成武县| 周口市| 梅州市| 石门县| 墨竹工卡县| 新和县| 济宁市| 东辽县| 江津市| 贡山| 蕲春县|