5 pagine in totale: <<Indietro 1 2 3 4 [5]
Controllo CustomValidator
Questo comando controlla che il valore inserito in una casella di input sia valido rispetto ad una funzione di convalida personalizzata creata dall'utente, per esempio una funzione per verificare se il numero immesso sia pari.
È possibile creare un comando di convalida personalizzato sia lato-server, sia lato-client; naturalmente il controllo lato-client richiede un browser compatibile DHTML. La convalida lato-client sarà sempre eseguita prima di quella lato-server.
Per creare una funzione di convalida lato-server è necessario settare nella proprietà OnServervalidator il nome della funzione di convalida. La stringa da convalidare viene letta dalla proprietà Value dell'oggetto ServerValidateEventArgs della funzione stessa. Il risultato della convalida va memorizzato nella proprietà IsValid dell'oggetto ServerValidateEventArgs.
Per creare una funzione di convalida lato-client è necessario settare nella proprietà ClientvalidatorFunction il nome della funzione di convalida.
Utilizzando JavaScript come linguaggio di programmazione la funzione utilizzerà la seguente sintassi:
Function validatorFunctionName (source, arguments)
Mentre nel caso di Vbscirpt:
Sub validatorFunctionName (source, arguments)
Come per la convalida lato-server, anche la convalida lato-client utilizzerà la proprietà Value del parametro arguments per leggere il valore da convalidare; il risultato della convalidà andrà memorizzato nella proprietà IsValid.
Per evitare che qualche malintenzionato cerchi di evitare la convalida lato-client, magari disabilitando gli script nel proprio browser, è sempre consigliato creare la stessa funzione anche sul lato-server.
Se il controllo input rimane vuoto nessuna funzione di convalidà verrà invocata e la convalida passerà il test. Per evitare questo tipo di problema è possibile associare allo stesso campo anche la convalida RequiredFieldValidator.
Ecco un esempio:
<html>
<head>
<script runat="server">
Sub ValidateBtn_OnClick(sender As object, e As EventArgs)
If Page.IsValid Then
lblOutput.Text = "OK il numero inserito è dispari"
Else
lblOutput.Text = "Attenzione: il numero inserito non è dispari"
End If
End Sub
Sub Servervalidator (source As object, arguments As ServerValidateEventArgs)
Dim num As Integer = Integer.Parse(arguments.Value)
arguments.IsValid = ((num mod 2) <> 0)
End Sub
</script>
<script language="javascript">
<!--
function ClientValidate(source, arguments)
{
if ((arguments.Value % 2) != 0)
arguments.IsValid=true;
else
arguments.IsValid=false;
}
// -->
</script>
</head>
<body>
<form runat="server">
<h3>CustomValidator</h3>
<asp:Label id=lblOutput runat="server"
Text="Inserisci un numero dispari:" />
<asp:TextBox id="Text1" runat="server" />
<asp:RequiredFieldValidator id="RequiredFieldValidator1"
ControlToValidate="Text1"
Text="il campo non può essere vuoto!"
Display="Dynamic"
runat="server"/>
<asp:CustomValidator id="CustomValidator1"
ControlToValidate="Text1"
ClientvalidatorFunction="ClientValidate"
OnServerValidate="Servervalidator"
ErrorMessage="Attenzione: il numero non è dispari"
runat="server"/>
<p>
<asp:Button id="Button1"
Text="Convalida"
OnClick="ValidateBtn_OnClick"
runat="server"/>
</form>
</body>
</html>Controllo ValidationSummary
Questo comando è utilizzato per visualizzar l'elenco degli errori riscontrati da tutti i validator controls. Il sommario degli errori può essere visualizzato in diversi modi: elenco, punto elenco o paragrafo, a seconda del modo in cui viene impostata la proprietà DisplayMode; il comando visualizzerà il testo contenuto nella proprietà ErrorMessage di ogni comando che non supera il test di convalida.
Un'altra proprietà utile di questo comando è ShowMessageBox che, se impostata su True, visualizza un finestra di dialogo alert sul client con il sommario degli errori.
Ecco un esempio:
<html>
<head></head>
<body>
<h3>ValidationSummary</h3>
<p>
<form runat="server">
<table cellpadding="10">
<tr>
<td>
<table cellpadding="10">
<tr> <td align="right">
Seleziona un opzione:
</td>
<td>
<asp:RadioButtonList id="RadioButtonList1"
RepeatLayout="Flow"
runat=server>
<asp:ListItem>Opzione 1</asp:ListItem>
<asp:ListItem>Opzione 2</asp:ListItem>
</asp:RadioButtonList>
</td>
<td align="middle" rowspan="1">
<asp:RequiredFieldValidator
id="RequiredFieldValidator1"
ControlToValidate="RadioButtonList1"
ErrorMessage="Nessuna opzione selezionata."
Display="Static"
InitialValue=""
Width="100%"
Text="* !!! *"
runat="server"/>
</td>
</tr>
<tr>
<td align="right">
Inserisci un testo:
</td>
<td>
<asp:TextBox id="TextBox1"
runat="server" />
</td>
<td>
<asp:RequiredFieldValidator
id="RequiredFieldValidator2"
ControlToValidate="TextBox1"
ErrorMessage="Nessun testo inserito."
Display="Static"
Width="100%"
Text="* !!! *"
runat=server/>
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button id="Button1"
Text="Convalida"
runat=server />
</td>
<td></td>
</tr>
</table>
</td>
<td>
<table cellpadding="20">
<tr>
<td>
<asp:ValidationSummary id="valSum"
DisplayMode="BulletList"
EnableClientScript="true"
HeaderText="Errori riscontrati:"
runat="server"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>Conclusioni
In questo articolo abbiamo visto come utilizzare i validator controls di ASP.NET, controlli molto utili per evitare di scrivere tutto il codice di controllo di convalida sia lato-server che lato-client.
L'espandibilità di questo comandi inoltre è garantita dal comando CustomValidator che permette di inserire una convalida personalizzata.
Insomma che dire, largo alla fantasia...
5 pagine in totale: <<Indietro 1 2 3 4 [5]
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
- Pagina 4
- Pagina 5
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà

Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!