【问题标题】:Uncheck last checkbox on CheckedChanged in code behind在后面的代码中取消选中 CheckedChanged 上的最后一个复选框
【发布时间】:2015-11-23 16:50:29
【问题描述】:

我有一个带有 itemtemplate 列的 gridview,其中有一个 Checkbox。我只希望用户选择其中 3 个复选框。在第 4 个选项中,我想弹出一条消息,告诉他们只允许 3 个,然后取消选中他们刚刚选中的复选框。我尝试了不同的javascript,但无法正常工作。

现在我非常接近在 CheckedChanged 事件后面的 vb 代码中执行此操作。我可以在第 4 次选择时弹出消息,但无法取消选中该框。我以为box.Checked = False 会这样做,但事实并非如此。我需要对发件人做些什么吗?还是我与我所拥有的很接近?

Protected Sub CheckBoxPain_CheckedChanged(sender As Object, e As System.EventArgs)

    Dim box As CheckBox
    Dim numChecked As Integer = 0

    For Each row As GridViewRow In gv_pain.Rows
        If row.RowType = DataControlRowType.DataRow Then
            box = CType(row.Cells(0).FindControl("CheckBoxPain"), CheckBox)
            If box.Checked Then
                numChecked = numChecked + 1
            End If
        End If
    Next

    'Response.Write("NUM:" & numChecked.ToString)
    'Response.Write("STATUS:" & box.Checked.ToString)
    'Response.Write("ITEM:" & box.SelectedItem.Text)

    If numChecked.ToString > 3 Then
        Response.Write("<script>alert('Only 3 Pain Selections allowed')</script>")
        box.Checked = False
    End If

End Sub

【问题讨论】:

    标签: javascript asp.net vb.net checkbox


    【解决方案1】:

    我通过添加一个 UnCheckMe 变量并获取 CType(sender, Checkbox) 解决了这个问题,见下文:

    Protected Sub CheckBoxPain_CheckedChanged(sender As Object, e As System.EventArgs)
    
        Dim box As CheckBox
        Dim numChecked As Integer = 0
        Dim GridCategory As String = "Pain"
    
        For Each row As GridViewRow In gv_pain.Rows
            If row.RowType = DataControlRowType.DataRow Then
                box = CType(row.Cells(0).FindControl("CheckBox" & GridCategory), CheckBox)
                If box.Checked Then
                    numChecked = numChecked + 1
                End If
            End If
        Next
    
        Dim MaxChecked As String = "3"
        If numChecked.ToString > MaxChecked Then
            Response.Write("<script>alert('Only " & MaxChecked & " " & GridCategory & " Selections allowed, uncheck one to make a new selection.')</script>")
    
            Dim UnCheckMe = CType(sender, CheckBox)
            UnCheckMe.Checked = False
        End If
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 2015-01-20
      • 2015-12-18
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 2011-06-09
      相关资源
      最近更新 更多