1

在 vb asp.net webform 中,我在 gridview 数据绑定过程中有一个 select case 语句,它基于存储在变量中的下拉列表中的值。

Protected Sub gvProgressGrid_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvProgressGrid.DataBound
    Dim strYear As String = DdlYear.Text
     Select Case strYear
        Case 11
            gvProgressGrid.Visible = True
        Case 10
            gvProgressGrid.Visible = True
        Case 9
            gvProgressGrid.Visible = True
        Case 8
            gvProgressGrid.Visible = False
        Case 7
            gvProgressGrid.Visible = False
    End Select
End Sub

默认情况下,gridview 会显示,当我从下拉列表中选择 7 或 8 时,gridview 会消失。但是,如果我选择 9-11,一旦消失,网格就不会重新出现。

4

1 回答 1

0

我不会为您的 Gridview 使用 Databound 事件,而是使用 DropDownList 的 SelectedIndexChanged 事件来容纳此逻辑:

Protected Sub DdlYear_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlYear.SelectedIndexChanged
    Dim strYear As String = DdlYear.Text
    Select Case strYear
        Case 11
            gvProgressGrid.Visible = True
        Case 10
            gvProgressGrid.Visible = True
        Case 9
            gvProgressGrid.Visible = True
        Case 8
            gvProgressGrid.Visible = False
        Case 7
            gvProgressGrid.Visible = False
    End Select
End Sub

这在语义上更有意义,因为结果取决于下拉列表 (DdlYear.Text) 的值。

它也可能会更正确地运行,因为我认为这个问题与您的 GridView 的数据绑定方式有关(它可能仅在第一页加载时进行数据绑定,而不是在回发时)。

于 2013-07-02T18:08:35.973 回答