asp下生成目录树结构的类

关于生成目录树结构的类

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

%>

时间: 2024-09-24 08:46:01

asp下生成目录树结构的类的相关文章

asp下生成目录树结构的类_ASP CLASS类

关于生成目录树结构的类 本程序有两文件test.asp 和tree.asp 还有一些图标文件 1.test.asp 调用类生成树 代码如下 <%@ Language=VBScript %> <html> <head> <link rel="stylesheet" href="tree.css"> <title>tree</title> </head> <!-- #include

关于生成目录树结构的类

本程序有两文件test.asp 和tree.asp 还有一些图标文件<br>1.test.asp 调用类生成树 代码如下<br><%@ Language=VBScript %><br><html><br><head><br><link rel="stylesheet" href="tree.css"><br><title>tree<

生成目录树结构的类

本程序有两文件test.asp 和tree.asp 还有一些图标文件 1.test.asp 调用类生成树 代码如下 <%@ Language=VBScript %> <html> <head> <link rel="stylesheet" href="tree.css"> <title>tree</title> </head> <!-- #include file="

根据模板文件建立动态目录树结构的类

动态|模板 根据模板文件建立动态目录树结构的类:建议入精华备查,有演示<br>演示地址:http://www.cnaspol.com/myasp/mmtree/treesample.asp<br>本程序包括三文件和相关的图片文件,包括test.asp,tree.asp,mytree.txt组成<br>test.asp 引用类文件和模板文件<br><%@ Language=VBScript %><br><!-- #include

asp/php下生成GUID

什么是 GUID? 全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装.在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID. GUID 的格式为"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字.例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值. 为什么要用GUID? 世界上的任何两台计

asp生成目录与无限生成多级目录创建

asp教程生成目录与无限生成多级目录创建 这里提供二款asp目录生成函数,第一款是只能创建一级目录,后一款函数可以支持多目录同时生成.   sub efolder(foldername) dim fso set fso=server.createobject("scripting.filesystemobject") if fso.folderexists(server.mappath(foldername)) then set fso=nothing exit sub else fs

ASP.NET中实现根据匿名类、datatable、sql生成实体类

  这篇文章主要介绍了ASP.NET中实现根据匿名类.datatable.sql生成实体类,这个小小工具类非常实用,使用起来也很方便,需要的朋友可以参考下 在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到

tomcat-在eclipse中新建servlet时,没有在web-inf目录下生成web.xml文件是怎么回事?

问题描述 在eclipse中新建servlet时,没有在web-inf目录下生成web.xml文件是怎么回事? 在eclipse中新建servlet时,没有在web-inf目录下生成web.xml文件是怎么回事?其中用的是tomcat-7.0 解决方案 Eclipse里面新建DynamicWeb Project时需要勾选生成web.xml选项才会生成web.xml文件.如果不勾选,则要自己建一个该文件了. 而新建Servlet后,如果要使用Servlet则需要在web.xml中自己配置. 解决方

c语言如何在指定的目录下生成文件

问题描述 c语言如何在指定的目录下生成文件 FILE_ *fput=fopen(""/home/nagainpkm/pwdSoftKeyboard/key""w""); 我想每次执行的程序的时候在这个目录下生成这个key的文件 这么写为什么不好使呢.. 解决方案 如何使用C语言搜索指定目录下的所有文件?Linux下 C语言实现遍历指定目录下指定格式的文件linux下使用c语言删除指定目录下所有文件 解决方案二: 使用相对目录或绝对目录,你这个目录