欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ASP.NET中樹(shù)形圖的實(shí)現

   樹(shù)形圖用于顯示按照樹(shù)形結構進(jìn)行組織的數據,其用途比較廣泛,如計算機中的文件系統(Windows中的資源管理器)、企業(yè)或公司的組成結構等。我們知道在Windows下VB、PB、Delphi等工具提供了一個(gè)功能很強的樹(shù)型控件TreeView,利用Treeview控件可以方便地開(kāi)發(fā)樹(shù)形圖。然而在網(wǎng)頁(yè)上實(shí)現樹(shù)形圖就不那么容易了,現在在A(yíng)SP.NET中利用微軟提供的Internet Explorer WebControls它使得網(wǎng)頁(yè)上的樹(shù)形圖開(kāi)發(fā)與在Windows下一樣的方便,一樣的功能強大,甚至更靈活。

本文介紹用Internet Explorer WebControls開(kāi)發(fā)樹(shù)形圖的方法,由于樹(shù)形圖結構較復雜,使用起來(lái)常不知如何下手。筆者結合最近剛為公司用ASP.NET編寫(xiě)的應用程序管理器這一具體實(shí)例,詳細闡述在A(yíng)SP.NET下如何將Internet Explorer WebControls的使用與數據庫聯(lián)系起來(lái),實(shí)現數據分任意多層顯示,方便地進(jìn)行增加、修改、刪除、移動(dòng)操作。筆者希望通過(guò)對該實(shí)例的闡述,達到拋磚引玉的效果,與各位同仁相互交流,共同進(jìn)步。

Internet Explorer WebControls不在VS.NET的標準Server Control中,要到微軟的站點(diǎn)上下載,下載地址是:
http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/Downloads/samples/Internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
下載安裝后第一次使用時(shí),要右擊工具箱Customize Toolbox…→.NET Framework Components中找到Micosoft.Web.UI.WebControls.Treeview后選中,這樣Treeview控件就出現在工具箱中了。

一、樹(shù)的建立

具體方法是:創(chuàng )建一個(gè)數據庫,設計樹(shù)圖信息表TREE_INFO,包含NODEID、PARENTID、NODENAME、ADDERSS、ICON字段,其它字段根據實(shí)際業(yè)務(wù)而定,節點(diǎn)名稱(chēng)NODENAME將在樹(shù)型控件的節點(diǎn)上顯示,NODEID字段保存節點(diǎn)的唯一標識號,PARENTID表示當前節點(diǎn)的父節點(diǎn)號,標識號組成了一個(gè)“鏈表”,記錄了樹(shù)上節點(diǎn)的結構。設計一個(gè)Web窗體其上放置TreeView控件。
Private Sub CreateDataSet()’建立數據集
Dim myConn As New SqlConnection()
Dim myCmd As New SqlCommand("select NODEID,NODENAME,PARENTID,ADDRESS,ICON from Tree_info", myConn)
Dim myDataAdapter As New SqlDataAdapter()
myConn.ConnectionString = Application("connectstring")
myCmd.CommandText = ""
myCmd.Connection = myConn
myDataAdapter.SelectCommand = myCmd
myDataAdapter.Fill(ds, "tree")
End Sub
建樹(shù)的基本思路是:從根節點(diǎn)開(kāi)始遞歸調用顯示子樹(shù)
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreateDataSet()
intiTree(TreeView1.Nodes, 0)
End Sub
Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer
dv.Table = ds.Tables("tree")
dv.RowFilter = "PARENTID=’" & parentId & "’"
For Each drv In dv
tmpNd = New TreeNode()
strId = drv("NODE_ID")
tmpNd.ID = strId
tmpNd.Text = drv("NODE_NAME ")
tmpNd.ImageUrl = drv("ICON").ToString
Nds.Add(tmpNd)
intiTree(Nds(Nds.Count - 1).Nodes, intId)
Next
End Sub

二、增加、刪除樹(shù)節點(diǎn)

單純在Treeview 上增加、刪除、修改節點(diǎn)只需用Nodes屬性的Add、 Remove、等方法即可,值得注意的地方是VS.NET中Treeview的Nodes集合與VS6.0中的區別,VS6.0中的是一個(gè)大的集合,而VS.NET中的是分層的每個(gè)Node下都有Nodes屬性。增加、刪除、修改樹(shù)節點(diǎn)時(shí)與VS6.0相比有很大差別,特別是刪除時(shí)。
Private Sub ButAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButAdd.Click’在選定的節點(diǎn)下添加子節點(diǎn)
Dim tmpNd As New TreeNode(), NdSel As TreeNode
tmpNd.ID = GetNewId()
NdSel = TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)’選中的節點(diǎn)
tmpNd.Text = "新節點(diǎn)"
NdSel.Nodes.Add(tmpNd)
Dim myRow As DataRow
myRow = ds.Tables("tree").NewRow()
myRow("NODE_NAME") = tmpNd.ID
myRow("NODE_DESCRIPT") = "新節點(diǎn)" & tmpNd.ID & "_" & NdSel.ID
myRow("PARENT_NAME") = NdSel.ID
ds.Tables("tree").Rows.Add(myRow)
End Sub
Private Sub ButDele_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButDele.Click’刪除選中的節點(diǎn)
Dim idx As String = TreeView1.SelectedNodeIndex()
GetNdCol(idx).Remove(TreeView1.GetNodeFromIndex(idx))
Dim dv As New DataView(), recNo As Integer
dv.Table = ds.Tables("tree")
dv.RowFilter= "NODEID=" & NdId
dv.Delete(0)
End Sub
Private Function GetNdCol(ByVal idx As String) As TreeNodeCollection
‘獲得選中節點(diǎn)的父節點(diǎn)的Nodes集合
Dim cnt As Integer, i As Integer
Dim tmpNds As TreeNodeCollection
Dim idxs() As String
idxs = Split(idx, ".")
cnt = UBound(idxs)
If cnt = 0 Then
tmpNds = TreeView1.Nodes
Else
tmpNds = TreeView1.Nodes(CInt(idxs(0))).Nodes
For i = 1 To cnt - 1
tmpNds = tmpNds(CInt(idxs(i))).Nodes
Next
End If
Return tmpNds
End Function

三、修改、移動(dòng)樹(shù)節點(diǎn)

由于服務(wù)器控件不支持鼠標拖動(dòng)事件,所以不能象Windows程序那樣通過(guò)拖動(dòng)移動(dòng)節點(diǎn),這里是通過(guò)選擇父節點(diǎn)的方式。移動(dòng)是通過(guò)在原位置刪除,新位置添加實(shí)現的,要注意在刪除時(shí)先保存節點(diǎn)信息。
Private Sub TreeView1_SelectedIndexChange(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) Handles TreeView1.SelectedIndexChange
Dim dv As New DataView()
dv.Table = ds.Tables("tree")
Dim tmpNd As TreeNode = TreeNdSel(e.OldNode), tmpNds As TreeNodeCollection
dv.RowFilter= "NODEID=" & tmpNd.ID
dv(0)("NODE_DESCRIPT") = Me.TextBox1.Text
dv(0)("ADDRESS") = Me.TextBox2.Text
dv(0)("TARGET") = Me.TextBox3.Text
dv(0)("ICON") = Me.TextBox4.Text
If dv(0)("PARENTID").ToString <> Me.DropDownList1.SelectedItem.Value Then
‘移動(dòng)節點(diǎn)
dv(0)("PARENT_NAME") = Me.DropDownList1.SelectedItem.Value
If Me.DropDownList1.SelectedItem.Value = "ROOT" Then
tmpNds = TreeView1.Nodes
Else
tmpNds = FromIdToNode(Me.DropDownList1.SelectedItem.Value, TreeView1.Nodes).Nodes’新的父節點(diǎn)的Nodes集合
End If
GetNdCol(e.OldNode).Remove(tmpNd)
tmpNds.Add(tmpNd)
End If
tmpNd.Text = Me.TextBox1.Text
tmpNd.ImageUrl = Me.TextBox4.Text
tmpNd = TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)
dv.RowFilter= "NODEID=" & tmpNd.ID
Me.TextBox1.Text = dv(0)("NODENAME").ToString
Me.TextBox2.Text = dv(0)("ADDRESS").ToString
Me.TextBox3.Text = dv(0)("TARGET").ToString
Me.TextBox4.Text = dv(0)("ICON").ToString
End Sub
Private Function FromIdToNode(ByVal ID As String, ByVal Nds As TreeNodeCollection) As TreeNode
‘由關(guān)鍵字查找節點(diǎn)
Dim i As Integer
Dim tmpNd As TreeNode, tmpNd1 As TreeNode
For Each tmpNd In Nds
If tmpNd.ID = ID Then
Return tmpNd
Exit Function
End If
tmpNd1 = FromIdToNode(ID, tmpNd.Nodes)
If Not (tmpNd1 Is Nothing) Then
Return tmpNd1
Exit Function
End If
Next
Return Nothing
End Function

四、結束語(yǔ)

以上闡述ASP.NET中樹(shù)狀顯示的基本方法,以及如何在對樹(shù)節點(diǎn)進(jìn)行維護(增加、刪除、修改、移動(dòng))的同時(shí),修改數據庫數據。由于篇幅所限,筆者在此只對基本思路和流程及關(guān)鍵步驟作了介紹,并未列出詳細源代碼,讀者可自行完善。在VS.NET、SQLServer、Windows 2000、IIS5.0下調試通過(guò)。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
VB.NET中動(dòng)態(tài)加載Treeview節點(diǎn)
vb給TreeView控件添加節點(diǎn)一例
TreeView展開(kāi)所有節點(diǎn)
快速清空TreeView的內容
SENDMESSAGE函數巧應用
treeeview控件的大概用法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久