网络编程
位置:首页>> 网络编程>> Asp编程>> 关于生成目录树结构的类

关于生成目录树结构的类

作者:yl10l 来源:动网 发布时间:2007-09-13 12:19:00 

标签:

本程序有两文件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 


0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com