濮阳杆衣贸易有限公司

主頁 > 知識庫 > asp下生成目錄樹結構的類

asp下生成目錄樹結構的類

熱門標簽:地圖標注還可以做嗎 電銷機器人采購 宿州防封外呼系統(tǒng)平臺 高質量的電銷外呼系統(tǒng) 外呼系統(tǒng)怎么話費 無營業(yè)執(zhí)照地圖標注教學 硅基電話機器人加盟 友邦互聯(lián)電銷機器人違法嗎 滴滴地圖標注上車點

關于生成目錄樹結構的類

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

%> 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 詳解JavaScript樹結構
  • JAVA使用geotools讀取shape格式文件的方法
  • java后端把數據轉換為樹,map遞歸生成json樹,返回給前端(后臺轉換)
  • mybatis實現(xiàn)讀取樹結構數據實例代碼
  • Python實現(xiàn)二叉樹結構與進行二叉樹遍歷的方法詳解
  • Python打印scrapy蜘蛛抓取樹結構的方法
  • C++二叉樹結構的建立與基本操作
  • 一個很簡單的jquery+xml+ajax的無刷新樹結構(無css,后臺是c#)
  • JavaScript幾種形式的樹結構菜單
  • Java實現(xiàn)簡單樹結構

標簽:雅安 儋州 錫林郭勒盟 廣元 新余 宣城 七臺河 江門

巨人網絡通訊聲明:本文標題《asp下生成目錄樹結構的類》,本文關鍵詞  asp,下,生成,目錄樹,結構,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《asp下生成目錄樹結構的類》相關的同類信息!
  • 本頁收集關于asp下生成目錄樹結構的類的相關信息資訊供網民參考!
  • 推薦文章
    梁山县| 额济纳旗| 永年县| 华容县| 云安县| 开阳县| 蒙阴县| 阿拉善盟| 长子县| 景洪市| 依兰县| 伊宁县| 双流县| 双鸭山市| 随州市| 大城县| 荆门市| 宾川县| 平谷区| 靖宇县| 湖北省| 克什克腾旗| 合阳县| 白水县| 冷水江市| 德兴市| 鄂伦春自治旗| 京山县| 中牟县| 宁安市| 时尚| 灌阳县| 清水河县| 和平区| 青龙| 岗巴县| 兴宁市| 兰州市| 东乌| 大宁县| 望奎县|