Se si vuole obbligare la selezione di una checkbox (tipicamente quella per la verifica della privacy) non è possibile utilizzare il controllo RequiredFieldValidator. La soluzione è semplice utilizzando il flessibile controllo CustomValidator.
Pagina aspx:
<asp:CheckBox ID="chkPrivacy" Runat="server" />
<asp:CustomValidator ClientValidationFunction="RequiredPrivacy" Runat="server" ID="CustomValidatorchkPrivacy" />
Validazione lato server:
La validazione si riduce semplicemente alla verifica della proprietà Checked del controllo CheckBox
private void CustomValidatorchkPrivacy_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;
if(chkPrivacy.Checked == false)
args.IsValid = false;
}
Validazione lato client:
La validazione lato client (facoltativa) si effettua impostando la proprietà ClientValidationFunction del controllo CustomValidator
<script language="javascript">
function RequiredPrivacy(oSrc, args){
if (document.all["<%=chkPrivacy.ClientID%>"].checked == false){
alert("Devi acconsentire al trattamento dei dati personali");
args.IsValid = false;
}
}
</script>
Si noti lo script server chkPrivacy.ClientID necessario per passare il corretto ID del controllo a runtime al codice Javascript.