Javascript 取消选中CheckedChanged in code behind上的最后一个复选框

Javascript 取消选中CheckedChanged in code behind上的最后一个复选框,javascript,asp.net,vb.net,checkbox,Javascript,Asp.net,Vb.net,Checkbox,我有一个gridview,其中有一个itemtemplate列,其中有一个复选框。我只希望用户选择其中3个复选框。在第四个选项中,我想弹出一条消息,告诉他们只允许3个,然后取消选中他们刚刚选中的复选框。我尝试了不同的Javascript,但无法让它工作 现在,我很快就可以在CheckedChanged事件的vb代码中实现这一点了。我可以在第四个选项中弹出消息,但无法取消选中该框。我原以为box.Checked=False可以,但事实并非如此。我需要和发件人做些什么吗?还是我和我所拥有的很接近 P

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

现在,我很快就可以在CheckedChanged事件的vb代码中实现这一点了。我可以在第四个选项中弹出消息,但无法取消选中该框。我原以为
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
受保护的子CheckBoxPain\u CheckedChanged(发送方作为对象,e作为系统.EventArgs)
将框变暗为复选框
Dim numChecked为整数=0
对于gv_.Rows中作为GridViewRow的每一行
如果row.RowType=DataControlRowType.DataRow,则
box=CType(row.Cells(0).FindControl(“CheckBoxPain”),复选框)
如果是框,则选中
numChecked=numChecked+1
如果结束
如果结束
下一个
'Response.Write(“NUM:”&numChecked.ToString)
'Response.Write(“状态:&box.Checked.ToString”)
'Response.Write(“项:”&box.SelectedItem.Text)
如果numChecked.ToString>3,则
响应。写入(“警报('只允许3个疼痛选项'))
box.Checked=False
如果结束
端接头

我通过添加一个未选中的KME变量并抓取
CType(发送者,复选框)
解决了这个问题,请参见以下内容:

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
受保护的子CheckBoxPain\u CheckedChanged(发送方作为对象,e作为系统.EventArgs)
将框变暗为复选框
Dim numChecked为整数=0
Dim GridCategory为String=“Pain”
对于gv_.Rows中作为GridViewRow的每一行
如果row.RowType=DataControlRowType.DataRow,则
box=CType(row.Cells(0).FindControl(“复选框”&GridCategory),复选框)
如果是框,则选中
numChecked=numChecked+1
如果结束
如果结束
下一个
Dim MaxChecked为String=“3”
如果numChecked.ToString>MaxChecked,则
Write(“警报('Only'&MaxChecked&'&GridCategory&'Selections allowed,uncheck one以进行新选择”))
Dim UnCheckMe=CType(发件人,复选框)
取消选中kme.Checked=False
如果结束
端接头