在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就会消失,那么网格就不会再出现了。
答案 0 :(得分: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是如何数据绑定有关(它可能只在首页加载时数据绑定,而不是在回发上)。