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

デフォルトではグリッドビューが表示され、ドロップダウンから 7 または 8 を選択するとグリッドビューが消えます。ただし、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 に答える