1

我有一个遵循层次结构的树视图

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

和一个显示数据的 GridView 与 treeview 选择的节点值。我已经使用 sqldatasource 在 gridview 中显示数据,并使用以下代码和查询

 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 季的数据 OK。但是,当我选择 Farm1 时,它会显示针对 Farm 1 的所有数据,而不是针对 Farm 1 的第 1 季的所有数据,并且字段值的行为相同。如何针对其上面的父节点和根节点等显示每个节点的数据.

4

1 回答 1

2

我怀疑您没有正确使用 .Depth 属性。尝试将每个节点的 ID 设置为不同的值,或者在尝试时将 SQL 语句写入每个节点的标记中。

于 2012-07-12T15:04:59.447 回答