• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 關于生成目錄樹結構的類

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    本程序有兩文件test.asp 和tree.asp 還有一些圖標文件 1。test.asp 調用類生成樹 代碼如下 %@ Language= VB Script % html head link rel="stylesheet" href="tree.css" titletree/title /head !-- #include file="tree.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

    %>
    演示地址:http://www.cnaspol.com/templatetree/test.asp


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>