网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网络编程 >> ASP教程 >> 正文
最新文章
· FSO 组件asp生成html静态页面碰到缓存
· asp实现长文章自动分页插件
· 在ASP中访问和更新Cookies集合
· ASP错误提示大全
· 学习ASP的几个观点
· ASP用两级联动下拉列表来显示大类和小
· ASP取当前页面地址和参数
· ASP删除记录的同时删除相关图片
· asp将查询结果导出到excel
· ASP批量导入Excel到Access或者Sql Se
热门文章
 化境ASP无组件上传类 - upload_5xs
 一个获取ACCESS数据库表名以及表名
 asp将查询结果导出到excel
 艾恩ASP无组件上传修改版
 ASP批量导入Excel到Access或者Sql 
 ASP读取数据库的Flash+JS图片切换特
 ASP用两级联动下拉列表来显示大类和
 ASP+JS实现网页歌曲连播、点播功能
 使用ASP重启服务器
 asp批量替换access数据库中指定字段
相关文章
没有相关文章
生成目录树结构的ASP类
来源:本站原创 更新时间:2009/5/14 16:55:53 阅读次数:
字体:[ ] 我要投稿

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

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号