I controlli composti sono contenitori che forniscono funzionalità base mediante proprietà di configurazione, controlli predefiniti o templates per la personalizzazione del layout.
Di questa tipologia fanno parte Login, ChangePassword, PasswordRecovery e CreateUserWizard, che dispongono di textbox per l'immissione di dati e di validatori per controllarli.
I validatori nella versione 2.0 di ASP.NET hanno la possibilità di essere raggruppati in moda da raggruppare gli elementi da verificare all'interno della pagina.
Questo è possibile mediante la proprietà BaseValidator.ValidationGroup che deve combaciare con il nome del ValidationGroup impostato su componenti che possono scatenare la validazione, quali Button, ImageButton, LinkButton, TextBox, CheckBox e RadioButton.
Il gruppo di default dei validatori e dei controlli è una stringa vuota (String.Empty). I controlli composti indicati precedentemente, invece, usano lo UniqueID (l'ID concatenato con gli ID dei padri separato da : o $).
Poniamo di aver un controllo Login di nome TestLogin:
<asp:Login ID="TestLogin" runat="server" />
Per scatenare la validazione da un controllo esterno indicheremo come ValidationGroup l'ID del Login:
<asp:Button Text="Login 2" CausesValidation="true" ValidationGroup="TestLogin" runat="server" />
Faremo lo stesso se vogliamo utilizzare il ValidationSummary che riassume lo stato di validazione:
<asp:ValidationSummary ID="ValidationSummary" runat="server" ValidationGroup="TestLogin" />
Se costruiamo un controllo composto è consigliabile usare lo stesso comportamento, oppure fornire la classe di una proprietà ValidationGroup per indicare il nome del gruppo da usare all'interno dei controlli figli. Questo perché non è possibile conoscere a priori quante volte il controllo può essere riutilizzato nella stessa pagina o se può andare in conflitto con altri già presenti ed è per questo che lo UniqueID garantisce un nome di gruppo univoco.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Short-circuiting della Pipeline in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Implementare il throttling in ASP.NET Core
Cache policy su route groups di Minimal API in ASP.NET Core 7
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Load test di ASP.NET Core con k6