Osservazioni
Utilizzare il controllo CustomValidator per specificare una funzione di convalida definita dall'utente per un controllo di input. Il controllo CustomValidator e il controllo di input del quale viene eseguita la convalida sono controlli separati. In questo modo è possibile controllare la posizione di visualizzazione del messaggio di convalida.
I controlli di convalida eseguono sempre la convalida sul server. Inoltre, presentano un'implementazione completa per il lato client che consente ai browser che supportano il linguaggio DHTML (quali Internet Explorer 4.0 e versioni successive) di eseguire la convalida sul client. La convalida sul lato client migliora il processo di convalida mediante la verifica dell'input dell'utente prima dell'invio al server. Tale operazione consente il rilevamento degli errori sul client, prima dell'invio del form, e di conseguenza evita il percorso di andata e ritorno delle informazioni necessario per la convalida sul lato server.
Per creare una funzione di convalida sul lato server, specificare un gestore per l'evento ServerValidate che esegue la convalida. Per accedere alla stringa del controllo di input da convalidare, utilizzare la proprietà Value del controllo ServerValidateEventArgs passata al gestore eventi come parametro. Il risultato della convalida viene quindi archiviato nella proprietà IsValid dell'oggetto ServerValidateEventArgs.
Per creare una funzione di convalida per il lato client, aggiungere innanzi tutto la funzione di convalida per il lato server descritta in precedenza. Aggiungere quindi alla pagina ASP.NET (file ASPX) la funzione di script di convalida per il lato client.
Se si utilizza VBScript, la funzione deve essere nel form:
Sub ValidationFunctionName(source, arguments)
Se si utilizza JScript, la funzione deve essere nel form:
function ValidationFunctionName(source, arguments)
Utilizzare la proprietà ClientValidationFunction per specificare il nome della funzione di script di convalida per il lato client associata al controllo CustomValidator. Poiché la funzione di script viene eseguita sul client, è necessario che sia scritta in un linguaggio supportato dal browser di destinazione, quale VBScript oppure JScript.
Analogamente a quanto avviene per la convalida sul lato server, per accedere alla stringa del controllo di input da convalidare utilizzare la proprietà Value del parametro arguments. Per restituire il risultato della convalida, impostare la proprietà IsValid del parametro arguments.
Attenzione Durante la creazione di una funzione di convalida sul lato client, assicurarsi di includere anche la funzionalità di convalida sul lato server. Se si crea una funzione di convalida sul lato client senza una funzione di convalida sul lato server corrispondente, è possibile che del codice dannoso riesca ad insinuarsi senza essere sottoposto alla convalida.
È possibile utilizzare più controlli di convalida con un solo controllo di input per convalidare criteri diversi. È possibile ad esempio applicare più controlli di convalida a un controllo TextBox che consente agli utenti di specificare il numero di oggetti da aggiungere a un carrello degli acquisti. È possibile utilizzare un controllo CustomValidator per essere sicuri che il valore specificato sia inferiore alla quantità di articoli in magazzino e un controllo RequiredFieldValidator per essere sicuri che gli utenti immettano un valore nel controllo TextBox.
Nota Se il controllo di input è vuoto, non verrà chiamata alcuna funzione di convalida e la convalida verrà eseguita correttamente. Utilizzare un controllo RequiredFieldValidator per richiedere all'utente di immettere dati nel controllo di input.