• <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-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 25次 | 進入軟件測試論壇討論

    領測軟件測試網 本程序有兩文件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/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>