1

次の階層を持つツリービューがあります

 Season 1
        Farm 1
              Field 1
              Field 2
                     Crop 1
                     Crop 2
        Farms 2  
              Field 1
              Field 2
                     Crop 1
                     Crop 2

そして、データを表示するGridViewは、ツリービューで選択されたノード値を返します。sqldatasourceを使用して、次のコードとクエリでグリッドビューにデータを表示します。

 Dim cmd As OleDbCommand = New OleDbCommand()
        If TreeView1.SelectedNode.Depth = 0 Then
            SqlDataSource1.SelectCommand = ("SELECT * FROM V_FARMS where SSN_id='" & TreeView1.SelectedNode.Value & "'")

        ElseIf TreeView1.SelectedNode.Depth = 1 Then
            SqlDataSource1.SelectCommand = ("SELECT * FROM V_FARMS where FRM_id='" & TreeView1.SelectedNode.Value & "'")

        ElseIf TreeView1.SelectedNode.Depth = 2 Then
            SqlDataSource1.SelectCommand = ("SELECT * FROM V_FARMS where FLD_id='" & TreeView1.SelectedNode.Value & "'")

        ElseIf TreeView1.SelectedNode.Depth > 2 Then
            SqlDataSource1.SelectCommand = ("SELECT * FROM V_FARMS where CRP_id='" & TreeView1.SelectedNode.Value & "'")
        End If

問題は、シーズン1を選択すると、シーズン1に対してデータが表示されることです。しかし、Farm1を選択すると、Farm 1に対するすべてのデータが表示されますが、Farm 1のシーズン1に対するすべてのデータではなく、Fieldsの値も同じように動作します。各ノードのデータをその上の親ノードおよびルートノードに対して表示するにはどうすればよいですか。 。

4

1 に答える 1

2

.Depth プロパティを正しく使用していない疑いがあります。各ノードの ID を異なる値にするか、試しながら各ノードのタグに SQL ステートメントを書き込んでみてください。

于 2012-07-12T15:04:59.447 に答える