在选择情况下未触发asp gridview可见性
Posted
技术标签:
【中文标题】在选择情况下未触发asp gridview可见性【英文标题】:asp gridview visibility not triggered in select case 【发布时间】:2013-07-02 15:52:21 【问题描述】:在 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,一旦消失,网格就不会重新出现。
【问题讨论】:
【参考方案1】:我不会为您的 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 的数据绑定方式有关(它可能仅在第一页加载时进行数据绑定,而不是在回发时)。
【讨论】:
以上是关于在选择情况下未触发asp gridview可见性的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net GridView 和 TemplateField 可见性 - false 但 ItemTemplate 仍在执行
OnCheckedChanged事件根本没有在GridView中触发