关于生成目录树结构的类

作者: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
投稿

猜你喜欢

  • Django 源码WSGI剖析过程详解

    2023-09-14 22:19:58
  • SQLServer触发器调用JavaWeb接口的过程详解

    2024-01-17 12:08:45
  • pandas.DataFrame的for循环迭代的实现

    2023-07-07 22:10:28
  • 在MySQL中使用LIMIT进行分页的方法

    2024-01-20 22:27:58
  • Go语言在Linux环境下输出彩色字符的方法

    2024-01-30 12:02:36
  • Go语言使用swagger生成接口文档的方法

    2023-08-28 06:23:23
  • keras中epoch,batch,loss,val_loss用法说明

    2021-08-11 10:56:30
  • Python3如何将源目录中的图片用MD5命名并可以设定目标目录

    2023-11-28 10:33:17
  • Pytest中skip skipif跳过用例详解

    2022-07-21 09:42:30
  • 你是一个职业的页面重构工作者吗?

    2008-09-29 12:07:00
  • python批量修改文件后缀示例代码分享

    2021-11-19 13:45:09
  • PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】

    2023-09-08 11:36:58
  • Python高级编程之继承问题详解(super与mro)

    2023-08-08 18:58:47
  • MySQL中如何优化order by语句

    2024-01-23 09:49:25
  • Python爬虫信息输入及页面的切换方法

    2023-08-02 17:33:33
  • ADO.NET数据库访问技术

    2024-01-13 03:17:27
  • Django把SQLite数据库转换为Mysql数据库的过程

    2024-01-26 09:42:35
  • Python多维/嵌套字典数据无限遍历的实现

    2023-07-22 16:48:56
  • python与mysql数据库交互的实现

    2024-01-15 03:24:23
  • golang1.16新特性速览(推荐)

    2023-07-06 10:34:47
  • asp之家 网络编程 m.aspxhome.com