2014-09-04 57 views
1

我正在使用VB.net 2010 &有一個樹形視圖,它通過Form1_Load中的數據集從MySQL表中填充。將Treeview子節點連接到數據庫詳細信息

treeview從數據庫表中加載測試數據很好,但我希望能夠點擊樹形子節點&在多個文本框中顯示匹配的數據。

我知道我需要爲每個表中的單元格有一個文本框,但我無法弄清楚如何將表格行ID列連接到樹視圖(子節點)。我的表ID列在下面的屏幕截圖中名爲UserID。

我也知道我需要將代碼添加到TreeView1_AfterSelect。我想我可能能夠使用treeview節點標籤連接到表UserID列,但我只是不確定代碼。

我的樹視圖根節點在設計視圖中設置。

我只有一個綁定導航器& Datagrid在測試treeview/table-details的時候,最終會從窗體中刪除它們。

這裏是我如何從MySQL表loading the treeview with my test data一些背景。

這裏是我的表格數據&的一些截圖VB.NET表格,這個網站不會讓我發佈圖片。

我一直試圖讓這至少一個星期,沒有運氣的工作。任何幫助將非常感激。

Private Sub AddNode(parentNode As String, nodeText As String) 
    Dim node As New List(Of TreeNode) 
    node.AddRange(TreeView1.Nodes.Find(parentNode, True)) 
    If Not node.Any Then 
     '' '' ''This is the Parent Treeview Node 
     node.Add(TreeView1.Nodes(0).Nodes.Add(parentNode, parentNode)) 
    End If 
    '' '' ''This is the Child Treeview Node 
    node.Add(TreeView1.Nodes(0).Nodes(parentNode).Nodes.Add(nodeText, nodeText)) 
End Sub 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load  
    'TODO: This line of code loads data into the 'Database1DataSet.Table44' table. You can move, or remove it, as needed. 
    Me.Table44TableAdapter.Fill(Me.Database1DataSet.Table44) 
    For Each dr As DataRow In Database1DataSet.Table44.Rows 
     AddNode(dr("ParentNode").ToString, dr("ChildNode").ToString) 
    Next 
    TreeView1.ExpandAll() 
End Sub 

回答

0

您的數據庫結構對我來說不太合理。每個州可以有多個城市嗎?或者它總是一個用戶和一個城市。目前尚不清楚。

無論如何,你可以使用該節點的關鍵參數設置Name屬性,看你點擊了什麼:

Private Sub AddNode(parentNode As String, nodeText As String, userID As String) 
    Dim node As New List(Of TreeNode) 
    node.AddRange(TreeView1.Nodes.Find(parentNode, True)) 
    If Not node.Any Then 
    node.Add(TreeView1.Nodes(0).Nodes.Add(parentNode, parentNode)) 
    End If 
    node.Add(TreeView1.Nodes(0).Nodes(parentNode).Nodes.Add(userID, nodeText)) 
End Sub 

然後在你的AfterSelect事件,看看你的鑰匙是一個數字:

Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) _ 
            Handles TreeView1.AfterSelect 
    Dim userID As Integer = 0 
    If Integer.TryParse(e.Node.Name, userID) Then 
    ' do something with userID 
    End If 
End Sub 
+0

謝謝你的幫助,Integer.TryParse效果很好。我使用了treeview_afterselect中的BindingSource.Position =(userID - 1)來完成將樹視圖連接到Table Data Details(文本框)。 – Bumble 2014-09-05 15:56:31

相關問題