Se si vuole obbligare la selezione di una checkbox (tipicamente quella per la verifica della privacy) non è possibile utilizzare il controllo RequiredFieldValidator.
La soluzione è comunque semplice utilizzando il flessibile controllo CustomValidator.
Inserite nell'html due controlli:
- la CheckBox:
<asp:CheckBox ID="chkPrivacy" Runat="server" />
- il controllo CustomValidator
<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
ClientValidationFunction="RequiredPrivacy"
ed inserendo nell'head il codice Javascript per la validazione. Ad esempio:
<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