• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 
    
    %> 
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 详解JavaScript树结构
    • JAVA使用geotools读取shape格式文件的方法
    • java后端把数据转换为树,map递归生成json树,返回给前端(后台转换)
    • mybatis实现读取树结构数据实例代码
    • Python实现二叉树结构与进行二叉树遍历的方法详解
    • Python打印scrapy蜘蛛抓取树结构的方法
    • C++二叉树结构的建立与基本操作
    • 一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
    • JavaScript几种形式的树结构菜单
    • Java实现简单树结构
    上一篇:asp下轻松实现将上传图片到数据库的代码
    下一篇:站长感慨asp编程究竟何去何从 原创
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp下生成目录树结构的类 asp,下,生成,目录树,结构,