2013-05-15 48 views
0

這是乾洗POS系統的應用程序。在預訂表單中是包含項目按鈕和樹視圖的組框,其中所有的訂單都被放入並且採用這種格式。vb.net中Treeview控件綁定

2x Trouser (node)     20 (Price) 

    Blue (Sub node) 
    Cotton (Subnode) 

1x Shirt  (node)    30 (Price) 

    Black (Sub node) 
    Linen (Sub node) 

2x Shorts  (node)    30 (Price) 

    Black (Sub node) 
    Linen (Sub node) 
    Press only(Sub node)   -15 (half of 30) 

上述項目是按鈕分組在組框中。有按衣服,顏色,材料和額外的百分比基於清潔量的百分比,如按僅,重新清潔等。

當我點擊某個特定羣組中的按鈕(比如衣服或服裝)時,項目被扔到樹視圖中,它的組消失,並且顯示下一個組(顏色),並且這一直持續到最後一個階段是Extra,然後我單擊下一個項目按鈕開始輸入另一個衣服。這我可以做,但這是我的問題。

  1. 我不知道如何添加量數據在樹視圖 節點項目旁邊(你可以看到這是褲子的第一個節點旁邊都有一個數字,2,這個數字意味着站在旁邊的樹視圖左側的節點項目(衣服),但不是作爲一個節點或子節點項目

  2. 我不知道如何添加在TreeView 節點項目相對價格的數字(如您可以看到價格不是節點,也不是子節點物品,它們旨在分別站在樹形視圖的最右側

  3. 我不知道如何將這些項目(節點和子節點)中的每一個綁定到數據庫表中的列。

回答

0

如果我解釋了你正在做的事情,你將無法將任何東西綁定到Treeview控件。您將需要創建循環遍歷數據並相應添加節點到樹視圖的過程。我在下面添加了一些粗略的代碼,可以幫助你。

在過去,我已經做了兩遍。第一遍拉和創建一個數據表或讀者只有頂級節點,在你的案例褲,襯衫和短褲。循環訪問該組數據並將節點添加到TreeView。

Private Sub RefreshTopNodes() 
     Dim dt As DataTable = TopNodes() 
     For I As Integer = 0 To dt.Rows.Count - 1 
      AddRootNode(dt.Rows(I).Item(0).ToString, dt.Rows(I).Item(1).ToString, dt.Rows(I).Item(2).ToString) 
     Next 
End Sub 

Private Sub AddRootNode(NodeID As String, NodeDesc As String, Price As Integer) 
     If NodeID = "ROOT" Then Exit Sub 
     Dim tn As TreeNode = TreeQs.Nodes.Add(NodeID, NodeDesc & " (" & Price.ToString & ")", 0) 
     tn.Tag = NodeID 
End Sub 

第二遍將拉和創建子節點的數據表或讀取器。循環遍歷該集合將子節點添加到適當的父節點。

Private Sub RefreshSubNodes() 
     Dim dt As DataTable = SubNodes() 
     For I As Integer = 0 To dt.Rows.Count - 1 
      AddSubNode(dt.Rows(I).Item(0).ToString, dt.Rows(I).Item(1).ToString, dt.Rows(I).Item(2).ToString, dt.Rows(I).Item(3).ToString) 
     Next 
    Catch ex As Exception 
     ErrorHandler("frmADCMainPA.RefreshSubNodes", ex.ToString) 
    End Try 
End Sub 

Private Sub AddSubNode(ParentNodeID As String, SubNodeID As String, SubNodeDesc As String, Price As Integer) 
     Dim tn As TreeNode = TreeQs.Nodes(ParentNodeID).Nodes.Add(ParentNodeID & "-" & SubNodeID, SubNodeDesc & " (" & Price.ToString & ")") 
     tn.Tag = ParentNodeID & ";" & SubNodeID 
End Sub 

我認爲您可以通過這兩種方式來完成數量。 1.在循環訪問子節點時計數,然後返回到父節點並編輯節點的文本以顯示數量。 2.將子節點計數附加到父節點查詢,並在添加節點時添加到數量。

從你給這些信息是我的建議。