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
- Workflow di continuous deployment tramite pull request label in GitHub
- Ricevere avvisi su metriche dei server Azure Arc
- Effettuare l'upload di un file via FTP con la libreria FluentFTP di .NET
- Effettuare update massivi con Entity Framework Core 7
- Monitorare i server on-premises con Azure Arc
- Linting di un Dockerfile con un workflow di GitHub
- Impostare dinamicamente il nome di una run di un workflow di GitHub
- .NET Conference Italia 2022 - Milano e Online
- Sottoscrizione agli eventi sul contenitore in JavaScript
- Catturare la telemetria degli eventi di output cache in ASP.NET Core