?''''=============================================================
''''===结点的类===================================================Class Node?Public parentObject??''''该节点归属的TreeView对象?Public Key????''''层的关键字?Private lText???''''显示的文本?Public Property Get Text()??Text = lText?End Property?Public Property Let Text(ByVal vNewValue)??lText = vNewValue??''''===设置文字??Dim objNode??Set objNode = document.getElementById(me.Key)??If Not objNode Is Nothing Then???objNode.rows(0).cells(Me.Level+2).firstChild.innerHTML = vNewValue??End If?End Property??Private lHyperLink?Public Property Get HyperLink()??HyperLink = lHyperLink?End Property?Public Property Let HyperLink(ByVal vNewValue)??lHyperLink = vNewValue??Dim objNode??Set objNode = document.getElementById(me.Key)??If Not objNode Is Nothing Then???objNode.rows(0).cells(Me.Level+2).firstChild.href = vNewValue??End If?End Property????Public Index???''''索引?Public Level???''''层次,根节点层次为0?''''Public HyperLink??''''联接的地址?Public ParentNode??''''父节点?Public PreviousNode??''''前一个兄弟节点?Public NextNode???''''下一个兄弟节点?Public ChildrenCount?''''子节点个数?Public NodeIndex??''''索引,每一级用两位(26个大写字母)表示,共有26*26=676个节点?Public ChildrenNodes?''''子节点集合,从零开始?Public AddType???''''节点添加类型?Public Flag????''''附加标记,主要用于给用户在事件中扩展使用??Private lImage????''''图标?Private lDisplayStatus??''''显示状态??0-未显示,1-显示?Private lExpandStatus??''''展开状态??0-未展开,1-展开?Private lFirstDisplay??''''是否是第一次显示??Private Sub Class_Initialize()??Set parentObject = Nothing??Key = ""??lText = ""??Index = 0??Level = 0??HyperLink = ""??Set ParentNode = Nothing??Set PreviousNode = Nothing??Set NextNode = Nothing??Redim ChildrenNodes(0)??Set ChildrenNodes(0) = Nothing??ChildrenCount = 0??NodeIndex = ""??Image = ""??lExpandStatus = 0??lDisplayStatus = 0??lFirstDisplay = True????AddType = "1"??''''默认为添加子节点??Flag = ""?End Sub??Public Function Display()??dim tabTreeView,udtTreeView??Set tabTreeView = Document.getElementById("tabTreeView")??Set udtTreeView = Me.parentObject??Dim objNode??dim objTab,objTR,objTD??dim i??Set objNode = Document.getElementById(Me.Key)??If objNode Is Nothing Then?????''''===检测节点的添加类型???If Me.AddType = 1 Then????If Me.ParentNode.NextNode Is Nothing Then?????If Me.PreviousNode Is Nothing Then??????i = Document.getElementById(Me.ParentNode.Key).parentElement.parentElement.rowIndex + 1?????Else??????Set objNode = Me.PreviousNode??????Do Until objNode.ChildrenCount = 0???????Set objNode = objNode.Children(objNode.ChildrenCount)??????Loop??????i = Document.getElementById(objNode.Key).parentElement.parentElement.rowIndex + 1?????End If????Else?????i = Document.getElementById(Me.ParentNode.NextNode.Key).parentElement.parentElement.rowIndex????End If???ElseIf Me.AddType = 2 then????i = Document.getElementById(Me.NextNode.Key).parentElement.parentElement.rowIndex???ElseIf Me.AddType = 3 Then????If Me.NextNode Is Nothing Then?????Set objNode = Me.PreviousNode?????Do Until objNode.ChildrenCount = 0??????Set objNode = objNode.Children(objNode.ChildrenCount)?????loop?????i = Document.getElementById(objNode.Key).parentElement.parentElement.rowIndex + 1????Else?????i = Document.getElementById(Me.NextNode.Key).parentElement.parentElement.rowIndex????End If???Else????i = tabTreeView.rows.length???End If???Set objTR=tabTreeView.insertRow(i)???Set objTD=objTR.insertCell()???objTD.innerHTML = ""??????Set objTab = Document.getElementById(Me.Key)???objTab.border = "0"???objTab.Cellpadding = "0"???objTab.CellSpacing = "0"??????Set objTR = objTab.insertRow()??????For i = 1 To Me.Level????Set objTD = objTR.insertCell()????objTD.innerHTML = ""???Next??????Set objTD = objTR.insertCell()??????Dim strImg???If Me.parentObject.UseConnectLine Then????strImg = "Lplus.gif"???Else????strImg = "Rplus.gif"???End If???objTD.innerHTML = ""??????objTD.Height = 15???Set objTD = objTR.insertCell()???if Me.Image = "" Then????objTD.innerHTML = ""???Else????objTD.innerHTML = ""???End If???Set objTD = objTR.insertCell()???objTD.NoWrap = "1"????''''不换行???''''objTD.height = "25"???If Me.HyperLink = "" Then????objTD.innerHTML = "" & Me.Text & ""???Else????objTD.innerHTML = "" & Me.Text & ""???End If?????End If?????End Function??''''===孩子节点的集合=============================================================?Public Function Children(ByVal Index)??dim i??Set Children = Nothing??Index = Trim(Index)??If IsNumeric(index) = False Then???For i=0 to Ubound(ChildrenNodes)????If UCase(ChildrenNodes(i).Key) = UCase(Index) Then?????Set Children = ChildrenNodes(i)?????Exit Function????End If???Next??Else???If Cint(index) < 1 Or Cint(index) > ChildrenCount Then????Exit Function???Else????Set Children = ChildrenNodes(CInt(index) - 1)???End If??End If?End Function?''''==============================================================================??''''===添加一个子节点?Public Function AddChild(objNode)??Redim Preserve ChildrenNodes(ChildrenCount)??Set ChildrenNodes(ChildrenCount) = objNode??ChildrenCount = ChildrenCount + 1?End Function??''''===展开状态?Public Property Get ExpandStatus()??ExpandStatus = lExpandStatus?End Property?Public Property Let ExpandStatus(ByVal vNewValue)??Dim PlusValue??If Me.ParentNode Is Nothing Or Not Me.parentObject.UseConnectLine Then???If Me.ChildrenCount > 0 Then????PlusValue = "R"???Else????PlusValue = "Blank"???End If??Else???If Me.NextNode Is Nothing Then????PlusValue = "L"???Else????PlusValue = "T"???End If??End If????If vNewValue = 0 Then???If me.ChildrenCount > 0 Or lFirstDisplay = True Then????PlusValue = PlusValue & "plus"???End IF??ElseIf vNewValue = 1 Then???If Me.ChildrenCount > 0 Then????PlusValue = PlusValue & "minus"???End If???lFirstDisplay = False??End If????lExpandStatus = vNewValue??Document.getElementById("plus" & Me.Key).src = Me.ParentObject.ImagePath & PlusValue & ".gif"??End Property???''''===显示状态?Public Property Get DisplayStatus()??DisplayStatus = lDisplayStatus?End Property?Public Property Let DisplayStatus(ByVal vNewValue)??If Not Me.parentNode Is Nothing Then???If CBool(vNewValue) And Not CBool(Me.parentNode.ExpandStatus) Then????Exit Property???End If??End If??????lDisplayStatus = vNewValue????Dim obj??Set obj = Document.getElementById(Me.Key)??If Not obj Is Nothing Then???Set obj = obj.parentElement.parentElement???If CBool(vNewValue) Then????obj.style.display = ""???Else????obj.style.display = "none"???End IF??End If??Set obj = Nothing?End Property??''''===节点图标?Public Property Get Image()??''''带目录的文件名??Image = lImage?End Property?Public Property Let Image(ByVal vNewValue)??lImage = vNewValue??If NOT Document.getElementById(Me.Key) Is Nothing Then???Document.getElementById(Me.Key).rows(0).cells(Me.Level+1).FirstChild.src = vNewValue??End IF?End Property?
End Class
?
上一页 [1] [2] [3]
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18