精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

www.成人在线| 亚洲精品永久视频| 一级特黄aaa大片| 99精品在线观看| 午夜精品成人在线视频| 精品免费国产| 精品不卡一区二区| 欧美残忍xxxx极端| 精品国产精品网麻豆系列| 国产精品国产亚洲精品看不卡| 欧美黄色小说| 蜜桃传媒麻豆第一区在线观看| 久久精品国产精品亚洲| 亚洲天堂资源在线| 欧美黄页在线免费观看| 亚洲午夜在线观看视频在线| 日韩性感在线| 蜜臀av中文字幕| 欧美bbbbb| 韩国日本不卡在线| 精品久久久久一区二区| 成人做爰免费视频免费看| 亚洲美女屁股眼交3| 欧洲视频一区二区三区| 性生活免费网站| 久久精品国产亚洲a| 97色在线观看免费视频| 极品魔鬼身材女神啪啪精品| 蜜桃一区二区三区| 欧美mv日韩mv国产网站| 性生生活大片免费看视频| 一区二区电影免费观看| 亚洲高清在线精品| 艳母动漫在线观看| 91大神在线网站| 99精品国产视频| 国产乱码精品一区二区三区卡 | 18在线观看的| 亚洲国产精品成人综合色在线婷婷| 国产欧美一区二区在线播放| 国产普通话bbwbbwbbw| 日本亚洲天堂网| 欧洲s码亚洲m码精品一区| 少妇久久久久久被弄高潮| 日韩精品看片| 最好看的2019年中文视频| 美女爆乳18禁www久久久久久 | 小泽玛利亚av在线| 黄色动漫在线观看| 亚洲欧洲一区二区在线播放| 亚洲精蜜桃久在线| 精品电影在线| 国产精品久久观看| 欧美电影一区二区| 99草草国产熟女视频在线| 天堂av中文在线观看| 精品高清一区二区三区| 国产精品美女久久久久久免费| 九九热国产在线| 亚洲九九在线| 久久天堂电影网| 成人国产精品久久久网站| 欧美亚洲色图校园春色| 亚洲国产婷婷香蕉久久久久久| 波多野结衣电影免费观看| 99日在线视频| eeuss影院在线播放| 国产亚洲精品aa午夜观看| 日本精品一区二区三区视频| 国产特黄在线| 蜜桃视频免费观看一区| 国产精品中文字幕在线观看| 91麻豆成人精品国产| 久久99精品久久久久久| 成人免费福利视频| 日韩欧美三级在线观看| 老鸭窝亚洲一区二区三区| 国产精品麻豆va在线播放| 亚洲一区 中文字幕| 国产一区二区三区黄视频 | 18成人在线观看| 91麻豆天美传媒在线| 中文字幕中文字幕在线十八区 | 欧美精品18videosex性欧美| 日韩av一二三区| 天堂一区二区在线| 91精品国产综合久久男男| www.黄色国产| 久久亚洲综合av| 亚洲综合激情五月| 国产精品一区二区日韩| 欧美日免费三级在线| 欧美性受xxxxxx黑人xyx性爽| 国产精品18hdxxxⅹ在线| 亚洲免费伊人电影在线观看av| 国产黄色录像视频| 国语对白精品一区二区| 国产精品99久久久久久白浆小说| 国产精品久久久久久久久久久久久久久久久久 | 99久久er热在这里只有精品66| 日韩三级电影网站| 国产黄色大片在线观看| 在线观看亚洲专区| 日批视频免费看| 成人在线电影在线观看视频| 久久久久久久久久久成人| 亚洲精品国产精品乱码视色| 成人午夜激情在线| 亚洲欧洲另类精品久久综合| 爱情岛亚洲播放路线| 欧美日韩免费一区二区三区| 捆绑凌虐一区二区三区| 婷婷综合社区| 国产精品91在线观看| 人妻无码中文字幕| 中文字幕亚洲欧美在线不卡| 欧美女人性生活视频| 国产精品3区| 在线播放日韩av| 欧美成人aaaaⅴ片在线看| 久久99精品久久久久久久久久久久| 久久久www免费人成黑人精品| 自由的xxxx在线视频| 欧美日韩精品系列| www在线观看免费视频| 激情成人亚洲| 91视频99| 国内精品久久久久久野外| 色爱区综合激月婷婷| 日韩无码精品一区二区| 欧美淫片网站| 91九色国产社区在线观看| 东凛在线观看| 在线亚洲一区观看| 日韩网站在线播放| 亚洲国产国产亚洲一二三| 亚洲综合中文字幕在线观看| 日本中文字幕在线视频| 欧美在线免费观看视频| 香蕉视频黄色在线观看| 亚洲大胆在线| 官网99热精品| xxx.xxx欧美| 精品国产乱码久久久久久老虎 | 欧美性猛交xxxxx水多| 天堂www中文在线资源| 国产精品a级| 动漫3d精品一区二区三区| 成人video亚洲精品| 制服丝袜亚洲色图| 国产精品99久久久久久成人| 精品亚洲国内自在自线福利| 中文视频一区视频二区视频三区 | 欧美一区二区三区在线看| 成人黄色短视频| 久久草av在线| 手机看片日韩国产| 日韩精品视频一区二区三区| 欧美精品免费看| www.黄色国产| 偷拍亚洲欧洲综合| 人妻精品久久久久中文字幕| 丝袜美腿高跟呻吟高潮一区| 婷婷五月色综合| 欧美成人一二区| 久久综合伊人77777| 国产麻豆免费观看| 亚洲午夜私人影院| 女尊高h男高潮呻吟| 日韩激情视频在线观看| 一区二区三区四区视频在线 | 久久综合福利| 色综合一本到久久亚洲91| 中文字幕亚洲国产| 国产三级小视频| 亚洲成人av福利| 国产伦理片在线观看| 久久99精品国产| 久青草视频在线播放| 欧洲亚洲视频| 国产精品日本精品| 视频在线观看入口黄最新永久免费国产| 精品国产乱码久久久久久免费 | 日本精品一区二区三区视频| 亚洲伦理网站| 98精品在线视频| 97超碰国产一区二区三区| 日韩一区二区中文字幕| 国产成人无码精品亚洲| 国产精品视频在线看| 美女流白浆视频| 狂野欧美性猛交xxxx巴西| 异国色恋浪漫潭| 欧美调教视频| 91在线高清视频| 中文字幕资源网在线观看免费| 视频一区视频二区国产精品 | 99免费精品在线| 亚洲最大成人在线观看| 亚洲巨乳在线| 久久久一二三四| 香蕉久久99| 96久久精品| 国产成人精品一区二区三区视频| 欧美激情xxxx| 99青草视频在线播放视| 亚洲成人在线视频播放| 一级黄色免费片| 欧美性xxxx在线播放| 欧美偷拍第一页| 国产日韩欧美一区二区三区乱码| 97中文字幕在线观看| 美女视频黄频大全不卡视频在线播放| 日韩xxxx视频| 亚洲综合自拍| 亚洲高清在线观看一区| 秋霞蜜臀av久久电影网免费| 亚洲一区二区自拍| yiren22亚洲综合| 5566成人精品视频免费| 欧美日韩在线视频免费观看| 日韩在线播放av| 国产乱子伦三级在线播放| 亚洲精品aⅴ中文字幕乱码| 国产美女免费视频| 欧美日韩另类一区| 亚洲精品无码久久久久| 欧美日韩亚洲激情| 精品一区免费观看| 亚洲黄色av一区| 永久免费看mv网站入口| 欧美高清在线一区| a天堂中文字幕| 91丨国产丨九色丨pron| 成熟妇人a片免费看网站| 国产精品99久久久久| 一级淫片在线观看| 精品中文av资源站在线观看| 日本美女高潮视频| 日韩黄色小视频| 激情内射人妻1区2区3区| 一区二区日韩免费看| 日本十八禁视频无遮挡| 精品二区久久| 国产日韩欧美精品在线观看| 欧美午夜在线| 一卡二卡三卡视频| 亚洲国产专区| 国产精品一区二区免费在线观看| 夜夜嗨av一区二区三区网站四季av| 国产激情片在线观看| 欧美成人日本| www污在线观看| 中文欧美日韩| 91av俱乐部| 蜜桃久久久久久| 日本中文字幕影院| 国产一区二区三区久久久| 日本xxxx免费| 99久久精品免费观看| av在线网站观看| 欧美国产成人精品| 国产一区二区精彩视频| 亚洲猫色日本管| 天天操天天射天天爽| 精品久久久久久久久国产字幕 | 都市激情国产精品| 97在线视频免费| 日韩在线影院| 成人黄色在线观看| 亚洲国产欧美国产第一区| 国产精品.com| 国产乱码精品一区二区亚洲| 亚洲无玛一区| 欧美精品aa| 国产一区二区三区精彩视频| 青青草原综合久久大伊人精品优势| 日本高清久久久| 国产999精品久久久久久| 欧类av怡春院| 国产精品无遮挡| 久久久久噜噜噜亚洲熟女综合| 精品国产福利视频| 中文字幕丰满人伦在线| 日韩天堂在线观看| 欧美91精品久久久久国产性生爱| 中文字幕亚洲激情| 2020国产在线| 国产精自产拍久久久久久| 麻豆精品国产| 日本成人三级电影网站| 永久91嫩草亚洲精品人人| 久久久一本二本三本| 久久99深爱久久99精品| 国产性生活毛片| 国产精品第五页| 国产成人精品网| 日韩一区二区精品葵司在线| 麻豆av电影在线观看| 久久香蕉频线观| 天天免费亚洲黑人免费| av免费精品一区二区三区| 国产一区二区精品福利地址| 少妇一晚三次一区二区三区| 日韩国产高清影视| 中文字幕天堂网| 亚洲欧洲精品成人久久奇米网| 五月天婷婷久久| 欧美成人一区二区三区| 91在线网址| 日本午夜在线亚洲.国产| 亚洲精选av| 中文精品一区二区三区| 日韩国产欧美三级| 亚洲天堂资源在线| 一二三四区精品视频| 色婷婷久久综合中文久久蜜桃av| 亚洲第一精品夜夜躁人人躁 | 日本免费久久高清视频| 网站一区二区| 欧美一级免费在线观看| 蜜桃视频免费观看一区| 99久久久无码国产精品性| 亚洲成人免费电影| 精品二区在线观看| 精品国产欧美成人夜夜嗨| 亚洲第一二三四区| 久久精品国产精品青草色艺| 伊人久久成人| 潘金莲一级淫片aaaaa| 亚洲视频1区2区| 一级黄色片免费| 正在播放亚洲1区| 人人鲁人人莫人人爱精品| 久久久www免费人成黑人精品| 亚洲经典在线看| 精品一区二区三区四区五区六区| 亚洲激情图片一区| 国产人妻精品一区二区三区| 久久久国产精品免费| 祥仔av免费一区二区三区四区| 性欧美大战久久久久久久免费观看 | 国内精久久久久久久久久人| 亚洲日本va| 日本香蕉视频在线观看| 国产福利91精品| 精品视频在线观看免费| 欧美不卡123| 丁香高清在线观看完整电影视频| 国产福利久久| 亚洲美女色禁图| 国产一级二级在线观看| 狠狠爱在线视频一区| 青青色在线视频| 国产成人亚洲精品| 日本精品黄色| 女同激情久久av久久| 亚洲美女区一区| 日韩在线视频第一页| 91极品女神在线| 色综合综合网| 亚洲怡红院在线| 亚洲人123区| 亚洲女同志亚洲女同女播放| 97久久精品国产| 天天操综合520| 日本久久久久久久久久久久| 成人欧美一区二区三区视频网页 | 日韩经典在线观看| 日韩av在线一区| 成人精品电影在线| 这里只有精品66| 成人动漫中文字幕| 色老头在线视频| 久久久999精品视频| 51精品国产| 黄色高清无遮挡| 亚洲青青青在线视频| 色婷婷激情五月| 国产精品久久久久久av| 在线观看国产精品入口| 日b视频在线观看| 欧美日韩在线观看一区二区 | 免费看毛片的网站| 色爱区综合激月婷婷| a视频在线观看免费| 精品国产乱码久久久久久蜜柚| 日本中文在线一区| 青青草原国产视频| 亚洲欧美日韩中文视频| 高清精品久久| 亚洲精品中文字幕无码蜜桃| 亚洲天天做日日做天天谢日日欢 | 日本一二三不卡| 成人av手机在线| 国产97在线|亚洲| 国产精品地址| 人人艹在线视频| 国产视频在线观看一区二区| 国产精品亚洲欧美一级在线 |