精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解ASP.NET樹形圖

開發 后端
本文介紹用Internet Explorer WebControls開發ASP.NET樹形圖的方法,由于樹形圖結構較復雜,使用起來常不知如何下手。

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


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

一、樹的建立

具體方法是:創建一個數據庫,設計樹圖信息表TREE_INFO,包含NODEID、PARENTID、NODENAME、ADDERSS、ICON字段,其它字段根據實際業務而定,節點名稱NODENAME將在樹型控件的節點上顯示,NODEID字段保存節點的***標識號,PARENTID表示當前節點的父節點號,標識號組成了一個“鏈表”,記錄了樹上節點的結構。設計一個Web窗體其上放置TreeView控件。

  1. Private Sub CreateDataSet()’建立數據集  
  2. Dim myConn As New SqlConnection()  
  3. Dim myCmd As New SqlCommand("select NODEID,NODENAME,PARENTID,
    ADDRESS,ICON from Tree_info", myConn)  
  4. Dim myDataAdapter As New SqlDataAdapter()  
  5. myConn.ConnectionString = Application("connectstring")  
  6. myCmd.CommandText = "" 
  7. myCmd.Connection = myConn 
  8. myDataAdapter.SelectCommand = myCmd 
  9. myDataAdapter.Fill(ds, "tree")  
  10. End Sub  

建樹的基本思路是:從根節點開始遞歸調用顯示子樹

  1. Private Sub Page_Load(ByVal sender As System.Object, 
    ByVal e As System.EventArgs) Handles MyBase.Load  
  2. CreateDataSet()  
  3. intiTree(TreeView1.Nodes, 0)  
  4. End Sub  
  5. Private Sub intiTree(ByRef Nds As TreeNodeCollection, 
    ByVal parentId As Integer)  
  6. Dim dv As New DataView()  
  7. Dim drv As DataRowView  
  8. Dim tmpNd As TreeNode  
  9. Dim intId As Integer  
  10. dv.Table = ds.Tables("tree")  
  11. dv.RowFilter = "PARENTID=’" & parentId & "’"  
  12. For Each drv In dv  
  13. tmpNd = New TreeNode()  
  14. strId = drv("NODE_ID")  
  15. tmpNd.ID = strId 
  16. tmpNd.Text = drv("NODE_NAME ")  
  17. tmpNd.ImageUrl = drv("ICON").ToString  
  18. Nds.Add(tmpNd)  
  19. intiTree(Nds(Nds.Count - 1).Nodes, intId)  
  20. Next  
  21. End Sub 

二、增加、刪除樹節點

單純在Treeview 上增加、刪除、修改節點只需用Nodes屬性的Add、 Remove、等方法即可,值得注意的地方是VS.NET中Treeview的Nodes集合與VS6.0中的區別,VS6.0中的是一個大的集合,而 VS.NET中的是分層的每個Node下都有Nodes屬性。增加、刪除、修改樹節點時與VS6.0相比有很大差別,特別是刪除時。
Private Sub ButAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButAdd.Click’在選定的節點下添加子節點

  1. Dim tmpNd As New TreeNode(), NdSel As TreeNode  
  2. tmpNd.ID = GetNewId()  
  3. NdSel = TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)’選中的節點  
  4. tmpNd.Text = "新節點" 
  5. NdSel.Nodes.Add(tmpNd)  
  6. Dim myRow As DataRow  
  7. myRow = ds.Tables("tree").NewRow()  
  8. myRow("NODE_NAME") = tmpNd.ID  
  9. myRow("NODE_DESCRIPT") = "新節點" & tmpNd.ID & "_" & NdSel.ID  
  10. myRow("PARENT_NAME") = NdSel.ID  
  11. ds.Tables("tree").Rows.Add(myRow)  
  12. End Sub  
  13. Private Sub ButDele_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
    Handles ButDele.Click’刪除選中的節點  
  14. Dim idx As String = TreeView1.SelectedNodeIndex()  
  15. GetNdCol(idx).Remove(TreeView1.GetNodeFromIndex(idx))  
  16. Dim dv As New DataView(), recNo As Integer  
  17. dv.Table = ds.Tables("tree")  
  18. dv.RowFilter"NODEID=" & NdId  
  19. dv.Delete(0)  
  20. End Sub  
  21. Private Function GetNdCol(ByVal idx As String) As TreeNodeCollection  
  22. ‘獲得選中節點的父節點的Nodes集合  
  23. Dim cnt As Integer, i As Integer  
  24. Dim tmpNds As TreeNodeCollection  
  25. Dim idxs() As String  
  26. idxs = Split(idx, ".")  
  27. cnt = UBound(idxs)  
  28. If cnt = 0 Then  
  29. tmpNds = TreeView1.Nodes  
  30. Else  
  31. tmpNds = TreeView1.Nodes(CInt(idxs(0))).Nodes  
  32. For i = 1 To cnt - 1  
  33. tmpNdstmpNds = tmpNds(CInt(idxs(i))).Nodes  
  34. Next  
  35. End If  
  36. Return tmpNds  
  37. End Function 

三、修改、移動樹節點

由于服務器控件不支持鼠標拖動事件,所以不能象Windows程序那樣通過拖動移動節點,這里是通過選擇父節點的方式。移動是通過在原位置刪除,新位置添加實現的,要注意在刪除時先保存節點信息。

  1. Private Sub TreeView1_SelectedIndExchange(ByVal sender As Object, 
    ByVal e As Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) 
    Handles TreeView1.SelectedIndexChange  
  2. Dim dv As New DataView()  
  3. dv.Table = ds.Tables("tree")  
  4. Dim tmpNd As TreeNode = TreeNdSel(e.OldNode), tmpNds As TreeNodeCollection  
  5. dv.RowFilter"NODEID=" & tmpNd.ID  
  6. dv(0)("NODE_DESCRIPT") = Me.TextBox1.Text  
  7. dv(0)("ADDRESS") = Me.TextBox2.Text  
  8. dv(0)("TARGET") = Me.TextBox3.Text  
  9. dv(0)("ICON") = Me.TextBox4.Text  
  10. If dv(0)("PARENTID").ToString <> Me.DropDownList1.SelectedItem.Value Then  
  11. ‘移動節點  
  12. dv(0)("PARENT_NAME") = Me.DropDownList1.SelectedItem.Value  
  13. If Me.DropDownList1.SelectedItem.Value = "ROOT" Then  
  14. tmpNds = TreeView1.Nodes  
  15. Else  
  16. tmpNds = FromIdToNode(Me.DropDownList1.SelectedItem.Value, 
    TreeView1.Nodes).Nodes’新的父節點的Nodes集合  
  17. End If  
  18. GetNdCol(e.OldNode).Remove(tmpNd)  
  19. tmpNds.Add(tmpNd)  
  20. End If  
  21. tmpNd.Text = Me.TextBox1.Text  
  22. tmpNd.ImageUrl = Me.TextBox4.Text  
  23. tmpNd = TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)  
  24. dv.RowFilter"NODEID=" & tmpNd.ID  
  25. Me.TextBox1.Text = dv(0)("NODENAME").ToString  
  26. Me.TextBox2.Text = dv(0)("ADDRESS").ToString  
  27. Me.TextBox3.Text = dv(0)("TARGET").ToString  
  28. Me.TextBox4.Text = dv(0)("ICON").ToString  
  29. End Sub  
  30. Private Function FromIdToNode(ByVal ID As String, 
    ByVal Nds As TreeNodeCollection) As TreeNode  
  31. ‘由關鍵字查找節點  
  32. Dim i As Integer  
  33. Dim tmpNd As TreeNode, tmpNd1 As TreeNode  
  34. For Each tmpNd In Nds  
  35. If tmpNd.ID = ID Then  
  36. Return tmpNd  
  37. Exit Function  
  38. End If  
  39. tmpNd1 = FromIdToNode(ID, tmpNd.Nodes)  
  40. If Not (tmpNd1 Is Nothing) Then  
  41. Return tmpNd1  
  42. Exit Function  
  43. End If  
  44. Next  
  45. Return Nothing  
  46. End Function 

四、結束語

以上闡述ASP.NET樹形圖,以及如何在對樹節點進行維護(增加、刪除、修改、移動)的同時,修改數據庫數據。由于篇幅所限,筆者在此只對基本思路和流程及關鍵步驟作了介紹,并未列出詳細源代碼,讀者可自行完善。需要詳細源代碼者可與我聯系,本文程序在VS.NET、SQLServer、 Windows 2000、IIS5.0下調試通過。

【編輯推薦】

  1. ASP.NET的DataList和Repeater控件
  2. 淺析ASP.NET的IIS映射
  3. 概述ASP.NET狀態類型
  4. 淺談ASP.NET和Web服務器
  5. ASP.NET的EnableViewState屬性
責任編輯:佚名 來源: IT168
相關推薦

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-23 13:19:51

2009-07-22 16:25:41

ASP.NET AJA

2009-07-28 16:57:50

ASP.NET Ses

2009-08-05 11:14:33

ASP.NET ISA

2009-07-24 10:14:22

ASP.NET開發

2009-08-19 13:44:00

ASP.NET Lis

2009-07-28 13:39:44

加載ViewStateASP.NET

2009-08-04 10:43:59

ASP.NET控件開發

2009-08-04 18:10:35

ASP.NET動態編譯

2009-07-23 13:09:23

2022-06-13 10:39:12

JavaScript

2009-08-18 17:50:37

ASP.NET MVC

2009-08-04 16:09:38

ASP.NET入門

2009-08-05 17:39:13

ASP.NET常用狀態

2009-07-21 15:38:31

2009-03-31 09:18:34

客戶端內置對象ASP.NET

2024-09-09 07:37:51

AspJWT權限

2011-11-22 09:32:39

ASP.NET

2009-08-01 22:47:13

ASP.NET筆試題目ASP.NET
點贊
收藏

51CTO技術棧公眾號

最新国产精品精品视频| 亚洲一区二区影视| 欧美日韩一区二区三区在线电影| 欧美午夜片在线免费观看| 日韩福利二区| 精品国产亚洲av麻豆| 国产精品试看| 久久综合亚洲社区| 一区二区免费在线观看视频| 亚洲四虎影院| 亚洲国产精品欧美一二99| 欧美一区二区视频17c| 国产农村老头老太视频| 国产亚洲综合精品| 不卡av在线网站| 欧美狂猛xxxxx乱大交3| 精品中文在线| 欧洲一区在线电影| 日韩日韩日韩日韩日韩| 午夜在线视频播放| 99国内精品久久| 51蜜桃传媒精品一区二区| 无码人妻精品一区二区| 国内在线观看一区二区三区| 最好看的2019年中文视频| 在线播放免费视频| 超碰一区二区| 亚洲电影一区二区三区| 中国成人在线视频| 国产在线三区| 99re热视频这里只精品| 91精品国产99久久久久久红楼| 最近免费中文字幕大全免费版视频| 欧美不卡视频| 日韩在线视频国产| 无码人妻丰满熟妇啪啪欧美| 日韩有码一区| 亚洲成人黄色网| 麻豆传媒在线看| 亚洲男男av| 欧美日韩在线直播| 久久久久久三级| 在线观看国产黄| 好吊日视频在线观看| 国产一区二区免费在线| 国产精品啪视频| 中文字幕精品无| 亚洲自拍另类| 91av在线播放| 狠狠躁夜夜躁人人爽天天高潮| 久久久国产精品| 中文字幕成人在线| 18精品爽国产三级网站| 欧美午夜精彩| 中文字幕av一区二区三区谷原希美| 精品人妻无码一区二区三区换脸| 网红女主播少妇精品视频| 亚洲а∨天堂久久精品9966| 女女调教被c哭捆绑喷水百合| 日本一区二区电影| 欧洲精品一区二区| 亚洲第一狼人区| 国产精品麻豆成人av电影艾秋| 欧美亚洲图片小说| 中文字幕成人在线视频| 亚洲精品第一| 日韩精品一区二区三区在线| 无码人妻一区二区三区免费n鬼沢| 奇米一区二区| 欧美精品一区二区久久婷婷| 成人手机在线免费视频| 亚洲欧美tv| 亚洲图片欧美午夜| 成人欧美一区二区三区黑人一| 日韩精品影视| 欧美不卡视频一区发布| 国产一级视频在线观看| 9色精品在线| 国产精品www| 国产巨乳在线观看| 99精品国产热久久91蜜凸| 日本一区视频在线| 男人和女人做事情在线视频网站免费观看 | www.久久久久久久久| 国内一区在线| 国产www.大片在线| 亚洲精品国久久99热| 亚洲va在线va天堂| 亚洲精品国产suv一区88| 国产在线观看www| 欧美丝袜自拍制服另类| 在线观看网站黄| 欧美日韩导航| 色婷婷综合久久久久中文字幕1| 午夜69成人做爰视频| 国产日韩欧美三区| 国产日韩av在线播放| 亚洲精品成人电影| 国产日产欧美一区二区三区| 97av中文字幕| 欧美三区四区| 精品噜噜噜噜久久久久久久久试看| 三级黄色片网站| 国产精品99在线观看| 国外视频精品毛片| 91成品人影院| 久久蜜桃一区二区| 超碰10000| 素人一区二区三区| 亚洲国产精品久久久久| 国内毛片毛片毛片毛片毛片| 国产精品毛片| 超碰在线97av| 在线观看麻豆| 色综合久久久网| caopor在线| 91精品观看| 国产精品美女久久| 亚欧洲精品视频| 一区二区三区高清| 久久久精品高清| 深爱激情综合网| 97超级碰碰碰| 亚洲AV无码乱码国产精品牛牛| 日本一区二区成人| 北条麻妃av高潮尖叫在线观看| 99久久免费精品国产72精品九九 | 国产精品手机视频| 日本福利专区在线观看| 日本精品一区二区三区高清| 久久久久成人精品无码中文字幕| 欧美大片专区| 成人在线精品视频| 日本福利专区在线观看| 欧美人与禽猛交乱配视频| 国产亚洲精品高潮| 日韩色图在线观看| 成人一区在线观看| 中文字幕在线中文| 久久wwww| 欧美成人在线免费| 99国产精品久久久久久久成人| 国产精品女同互慰在线看| 91激情视频在线| 欧美色就是色| 国产精品久久久久9999| 高清性色生活片在线观看| 色综合色狠狠天天综合色| 538国产视频| 国产精品久久久久久模特| 国产精品一级久久久| caoprom在线| 精品国产乱码久久久久久闺蜜| 欧美人妻一区二区| 国产99久久久久久免费看农村| 欧美视频在线第一页| 亚洲成人五区| 欧美黑人性生活视频| 国精品人妻无码一区二区三区喝尿| 亚洲精品视频在线| 激情小说欧美色图| 在线不卡亚洲| 久久亚洲高清| 精品成人av| 久久精品电影网站| 性生活黄色大片| 午夜av区久久| 国产 欧美 在线| 韩国精品在线观看| www.欧美黄色| 无码少妇一区二区三区| 国产精品video| av色综合久久天堂av色综合在| 日韩精品一区二区三区中文精品 | 大地资源网3页在线观看| 日韩一级视频免费观看在线| 国产一级做a爰片在线看免费| av一区二区久久| 亚洲一区二区蜜桃| 欧美激情四色| 欧美lavv| 亚洲高清影院| 91大神在线播放精品| 91精品专区| 欧美成va人片在线观看| 精品国产xxx| 欧美日韩在线观看首页| 91精品国产91热久久久做人人| 国产一二三四在线| 久久久久久久久久看片| 涩涩网站在线看| 99视频一区| 色中文字幕在线观看| 51亚洲精品| 国产精品丝袜久久久久久不卡| 国内小视频在线看| 中文字幕欧美国内| 欧美在线 | 亚洲| 欧美久久久久久蜜桃| 91av在线免费视频| 亚洲日韩欧美一区二区在线| 99re这里只有| 国产一区二区三区四区五区美女| 黄色av网址在线播放| 婷婷综合网站| 欧美日韩系列| 黄色成人美女网站| 成人字幕网zmw| 日本久久免费| 久久久久久综合网天天| 91caoporn在线| 亚洲男人av在线| 肥臀熟女一区二区三区| 精品视频1区2区3区| 亚洲熟女综合色一区二区三区| 亚洲免费在线视频一区 二区| 91视频免费观看网站| 成人午夜av在线| 免费网站在线观看黄| 日本视频免费一区| 国内外成人激情视频| 欧美午夜不卡影院在线观看完整版免费| 日韩妆和欧美的一区二区| 国产成人夜色高潮福利影视 | 伊人久久亚洲| 91探花福利精品国产自产在线| 蜜桃成人精品| 欧美亚洲一区在线| 91九色美女在线视频| 欧美猛少妇色xxxxx| 免费黄色在线| 最近更新的2019中文字幕| 国产综合视频一区二区三区免费| 日韩电影中文字幕一区| 丰满岳乱妇国产精品一区| 91精品国产综合久久久久久久久久| 樱花视频在线免费观看| 日韩欧美国产骚| 手机看片久久久| 一本到不卡精品视频在线观看| 国产无遮挡免费视频| 亚洲国产视频直播| 91成人在线视频观看| 国产欧美黑人| 国产午夜精品视频免费不卡69堂| 亚洲日本国产精品| 日韩精品极品在线观看| 水莓100在线视频| 亚洲男人天堂网| 国产精品成久久久久三级| 亚洲成人三级| 色哟哟网站入口亚洲精品| 国产黄色在线| 欧美国产精品一区二区| 成人免费毛片日本片视频| av一区二区三区| 亚洲精品视频久久久| 久久久久99精品国产片| av黄色在线免费观看| 国产喂奶挤奶一区二区三区| 久久久久久久毛片| 国产精品入口麻豆原神| 中国1级黄色片| 亚洲欧美区自拍先锋| 欧美日韩人妻精品一区二区三区| 一区二区三区在线免费播放| 久久午夜鲁丝片午夜精品| 亚洲高清不卡在线观看| 九一国产在线观看| 欧美亚洲图片小说| 国产99久一区二区三区a片 | 日韩美女主播视频| 电影一区二区| 2014国产精品| 亚洲国产欧美日韩在线观看第一区| 欧美午夜精品久久久久免费视| 欧美艳星介绍134位艳星| 好色先生视频污| 亚洲久久一区| www.se五月| 成人深夜在线观看| jizz中文字幕| 亚洲综合色噜噜狠狠| 国产小视频在线免费观看| 欧美三级蜜桃2在线观看| 午夜精品在线播放| 国产婷婷色综合av蜜臀av| 在线免费观看黄色网址| 欧美激情视频给我| 精品3atv在线视频| 亚洲综合在线中文字幕| 自拍视频一区| 欧美一区二区三区综合| 午夜在线视频一区二区区别| 中文字幕中文在线| 97精品国产97久久久久久久久久久久| 99自拍偷拍视频| 亚洲成人资源网| 亚洲最大成人av| 日韩电影在线观看中文字幕 | 俄罗斯女人裸体性做爰| 久久久久久久久久久久久久久99 | 免费网站成人| 中文字幕国产精品久久| а√天堂8资源中文在线| 国产精自产拍久久久久久| 精品福利网址导航| 最近免费观看高清韩国日本大全| 美女国产一区| 91视频在线免费| 亚洲欧美另类久久久精品| 国产中文字幕视频| 欧美xxx久久| 黄色av网站在线播放| 日韩av免费一区| 国产一级成人av| 免费国产成人看片在线| 日本成人中文字幕在线视频 | www.综合色| 色青青草原桃花久久综合 | 91久久精品国产91性色tv | 99久久国产免费看| 免费中文字幕在线| 欧美日韩国产一二三| 国产在线三区| 国产z一区二区三区| 美国一区二区| 欧美视频在线观看视频| 国产精品一区二区在线看| 国精产品久拍自产在线网站| 色av成人天堂桃色av| 日韩三级电影网| 91国产精品91| 噜噜噜狠狠夜夜躁精品仙踪林| 91传媒免费视频| 国产在线一区二区综合免费视频| 黄色av片三级三级三级免费看| 色8久久精品久久久久久蜜| 香蕉国产在线视频| 97超碰蝌蚪网人人做人人爽| 成人高潮视频| 成年人看的毛片| 成人综合婷婷国产精品久久蜜臀| 免费在线一级片| 精品免费国产一区二区三区四区| 黑人另类精品××××性爽| 91手机视频在线观看| 综合一区在线| av av在线| 婷婷开心久久网| 欧美孕妇性xxxⅹ精品hd| 欧美一级成年大片在线观看 | 黄色高清视频网站| 激情小说亚洲一区| 青青草免费av| 亚洲国产成人91精品| 国产社区精品视频| 青娱乐一区二区| 久久综合综合久久综合| 欧美另类videoxo高潮| 日韩一卡二卡三卡国产欧美| 久草综合在线视频| 国产·精品毛片| 国产成人无码aa精品一区| 精品国产百合女同互慰| 国产传媒av在线| 日韩精品资源| 国产美女精品人人做人人爽| 男女免费视频网站| 日韩电影免费观看在线观看| 欧美日韩国产网站| 老司机午夜网站| 99久精品国产| 亚洲综合精品国产一区二区三区 | 国产在线看一区| 精品无码人妻一区二区三| 日韩激情片免费| 成人做爰视频www| 91黄色在线看| 国产日韩精品一区| 国产视频手机在线观看| 91精品国产乱码久久久久久久久| 国产一区二区三区探花| 香蕉视频xxxx| 一本到不卡免费一区二区| 超碰最新在线| 欧美亚洲丝袜| 国产美女在线观看一区| 亚洲欧美日韩激情| 欧美精品少妇videofree| 免费精品国产的网站免费观看| 亚洲理论中文字幕| 黑人巨大精品欧美一区二区一视频| √新版天堂资源在线资源| 国产欧美日韩综合精品二区| 美腿丝袜亚洲色图| 国产五月天婷婷| 日韩视频免费看| 精品人人人人| 久久精品国产99久久99久久久|