I've been programming for over 5 years now and it was just within the last year that I found the need to validate an asp.net checkbox list control. I'm telling you, never had a need! Now I know why I never had the need, it was because it was a premonition of what a pain it was going to be until I found this little snippet of code below.

Actually, here's the deal. There is not a standard "Required Field Validator" control for checkbox lists standard in your toolbox. So what you do is you use a Custom. Validator and add an OnServerValidate attribute calling the procedure below. (however for my blogger purposes the < and > were replaced with [ and ])

[asp:CustomValidator ID="cvAlarmType" runat="server" CssClass="ErrorFont" OnServerValidate="AlarmTypeCBL_ServerValidate"][/asp:CustomValidator]

Then add the following code in your code behind.....

Protected Sub CustomValidation_ServerValidate(ByVal source As System.Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles cvAlarmServices.ServerValidate
             Dim i As Integer
        i = 0
        For Each item As ListItem In Me.checkboxlist.Items
            If item.Selected Then
                i = i + 1
            End If
        Next
        If i = 0 Then
            args.IsValid = False
            Me.CustomValidator1.ErrorMessage = "Selection Required"
        Else
            Me.cvAlarmServices.ErrorMessage = ""
        End If
    End Sub

Viola!

Now, one "gotcha" I've noticed is that if you are using other validation controls on your page and you have a validation summary that is popping up, well, the popup stops working for some reason.  But hey, when I figure that one out, I'll be sharing the info!!