关于生成目录树结构的类
作者: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