I validator controls di ASP.NET sono molto flessibili e molto potenti, ma le funzionalità di quelli di base sono limitate ai casi più frequenti: campo obbligatorio, regular expression, tipo di input.
Ci sono tuttavia casi in cui il controllo che si deve fare è un po' più complesso, perchè magari richiede la verifica dell'input inserito.
In un caso simile, è possibile utilizzare un Custom Validator Control e demandare la verifica ad un codice particolare, magari più complesso.
Nell'esempio viene eseguito solo codice lato-server, ma è possibile fare una pre-verifica (senza PostBack) impostando nella proprietà ClientvalidatorFunction del controllo la Function client-side da invocare.
Tornando all'esempio, verificheremo che la data inserita appartenga ad un anno bisestile.
Nell'evento invocato durante la verifica viene passato un oggetto ServerValidateEventArgs che contiene il riferimento alla validazione stessa.
Per far passare la validazione, basta impostarne la relativa proprietà IsValid su true.
<SCRIPT Language="VB" runat="server"> ' controlla il submit della form Sub FormBtn_OnClick(sender as object, e as EventArgs) If Page.IsValid Then lblRisultato.Text = "La data fa parte di un anno bisestile ed è: " & Convert.ToDateTime(DataDaVerificare.Text).ToLongDateString else lblRisultato.Text = Nothing End If End Sub ' controlla (server-side) la validità della data Sub ControllaData (source as object, arguments as ServerValidateEventArgs) ' verifica che sia una data try ' verifica che sia un anno bisestile arguments.IsValid = DateTime.IsLeapYear(DateTime.Parse(arguments.Value).Year) catch arguments.IsValid = false end try End Sub </SCRIPT> <asp:label id="lblRisultato" runat="server" /> <form runat="server">Inserisci una data di un anno bisestile: <asp:textbox id="DataDaVerificare" runat="server" /> <asp:CustomValidator id="Data_Validator" ControlToValidate="DataDaVerificare" OnServerValidate="ControllaData" ErrorMessage="formato data non corretto/anno non bisestile" runat="server"/> <asp:Button Text="Continua" OnClick="FormBtn_OnClick" runat="server"/> </form>
Un Custom Validator può essere molto utile, ad esempio, per verificare la validità di una partita IVA, di un codice prodotto o comunque di campi che non hanno un formato ben definito.
Per approfondimenti sui Validator Controls, è possibile leggere:
https://www.aspitalia.com/articoli/aspplus/validatorcontrols.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub