当前位置: 首页 > 图文教程 > 网络编程 > ASP > 关于生成目录树结构的类

ASP
ASP实现不存在的网页就自动发送邮件
多个绑定多域名的ASP代码
ASP导出Excel数据的四种方法
用控件的方式解决问题-在客户端关联WEB控件引用
用ASP建立一个简单的聊天室
用Asp隐藏文件路径,实现防盗链
ASP实例:即时显示当前页面浏览人数
网页视频播放器程序代码通用代码
Cookies 欺骗漏洞的防范(vbs+js 实现)
ASP应用程序设计的Web状态管理分析
ASP中Session技巧
ASP教程:透彻掌握ASP分页技术
ASP获取字符串长度的自定义函数
通过实例讲解来学习ASP中的函数
ASP实例代码:长文章分页代码设置方法
深入理解ASP中FSO的神奇功能
用ASP代码得到客户端IP和当前地址
服务端 VBScript 与 JScript 几个相同特性的写法
JS+DIV模拟SELECT表单域
插入ASP代码让网站数据库成为ASP木马

ASP 中的 关于生成目录树结构的类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 42 ::
收藏到网摘: n/a

本程序有两文件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: [email protected]
' 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
Respo