樹形圖在數據庫中的用法如下:
樹形圖用於顯示按樹形結構組織的數據,應用廣泛,如計算機中的文件系統(Windows中的資源管理器)、企業或公司的組成結構等。我們知道,在Windows下,VB、PB、Delphi等工具提供了壹個強大的樹控件TreeView,利用它可以方便地開發樹形圖。然而,在網頁上實現樹形圖並不那麽容易。現在,使用ASP.NET微軟公司提供的Internet Explorer WebControls,使得在網頁上開發樹形圖像在Windows下壹樣方便、強大,甚至更加靈活。
介紹了用Internet Explorer控件開發樹形圖的方法。由於樹形圖結構復雜,使用時往往難以知道如何下手。作者結合最近在ASP.NET為公司編寫的應用程序管理器的具體實例,詳細闡述了如何使用Internet Explorer WebControls與ASP.NET下的數據庫鏈接,實現數據的任意多層顯示,方便添加、修改、刪除、移動等操作。筆者希望通過這個例子的闡述,達到拋磚引玉的效果,與同仁交流,共同進步。
Internet Explorer WebControls不在VS.NET的標準服務器控件中,因此應該從以下地址的Microsoft網站下載:
t為整數,I為整數
將tmpNds dim作為TreeNodeCollection
Dim idxs()作為字符串
idxs = Split(idx," ")
cnt = UBound(idxs)
如果cnt = 0,則
tmpNds = TreeView1。節點
其他
tmpNds = TreeView1。節點(CInt(idxs(0)))。節點
對於i = 1至cnt - 1
tmpNds = tmpNds(CInt(idxs(i)))。節點
然後
如果…就會結束
返回tmpNds
結束功能
第三,修改和移動樹節點
因為服務器控件不支持鼠標拖動事件,所以不能像Windows程序那樣通過拖動來移動節點。在這裏,您選擇父節點。移動是通過在原始位置刪除並在新位置添加來實現的。刪除時註意先保存節點信息。
private Sub treeview 1 _ SelectedIndexChange(ByVal sender為對象,ByVal e為Microsoft。web . ui . web controls . treeviewselecteventargs)處理TreeView1。SelectedIndexChange
將dv調暗為新數據視圖()
dv。表= ds。表格(“樹”)
dim tmpNd As TreeNode = TreeNdSel(e . old node),tmpNds As TreeNodeCollection
dv。RowFilter = " NODEID = " & amptmpNd。身份證明
dv(0)(“NODE _ DESCRIPT”)= Me。文本框1。文本
dv(0)(“地址”)=我。文本框2 .文本
dv(0)(“目標”)=我。文本框3 .文本
dv(0)(“ICON”)=我。文本框4 .文本
if dv(0)(“PARENTID”)。ToString & lt& gt我。DropDownList1。選擇編輯項目。然後選擇值
?移動節點
dv(0)(“PARENT _ NAME”)=我。DropDownList1。選擇編輯項目值
如果我。DropDownList1。選擇編輯項目。Value = "ROOT "然後
tmpNds = TreeView1。節點
其他
tmpNds = FromIdToNode(Me。DropDownList1。SelectedItem.Value,TreeView1。節點)。節點?新父節點的節點集合
如果…就會結束
GetNdCol(e.OldNode)。移除(tmpNd)
tmpNds。添加(tmpNd)
如果…就會結束
tmpNd。文字=我。文本框1。文本
tmpNd。ImageUrl =我。文本框4 .文本
tmpNd = TreeView1GetNodeFromIndex(treeview 1。SelectedNodeIndex)
dv。RowFilter = " NODEID = " & amptmpNd。身份證明
我。文本框1。Text = dv(0)(“節點名”)。ToString
我。TextBox2.Text = dv(0)(“地址”)。ToString
我。TextBox3.Text = dv(0)(“目標”)。ToString
我。textbox 4 . Text = dv(0)(“ICON”)。ToString
末端接頭
作為TreeNode的私有函數FromIdToNode(字符串形式的ByVal ID,TreeNodeCollection形式的ByVal Nds)
?通過關鍵字查找節點
將I標註為整數
Dim tmpNd作為TreeNode,tmpNd1作為TreeNode
對於Nds中的每個tmpNd
如果tmpNd。ID = ID那麽
返回tmpNd
退出功能
如果…就會結束
tmpNd1 = FromIdToNode(ID,tmpNd。節點)
如果不是(tmpNd1什麽都不是),那麽
返回tmpNd1
退出功能
如果…就會結束
然後
不返回任何內容
結束功能