Esporta (0) Stampa
Espandi tutto

Classe CustomValidator

Esegue una convalida definita dall'utente su un controllo di input.

Spazio dei nomi: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public class CustomValidator : BaseValidator
public class CustomValidator extends BaseValidator
public class CustomValidator extends BaseValidator

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 del lato client che consente ai browser abilitati agli script, ad esempio Microsoft 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. In tal modo è possibile rilevare gli errori sul client prima che il form venga inviato, evitando la sequenza di andata e ritorno delle informazioni necessarie 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 dell'oggetto ServerValidateEventArgs passato nel gestore eventi come parametro. Il risultato della convalida viene quindi memorizzato 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 Visual Basic Scripting Edition (VBScript), il formato della funzione deve essere il seguente:

 Sub ValidationFunctionName(source, arguments)

Se si utilizza JScript, il formato della funzione deve essere il seguente:

 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.

Nota di avvisoAttenzione

Quando si utilizzano i controlli di convalida, è opportuno verificare i risultati di convalida sul lato server prima di eseguire qualsiasi elaborazione. Successivamente all'esecuzione di un postback, ma prima della chiamata ai metodi dell'evento utilizzati, nella pagina vengono richiamati i controlli di convalida e i relativi risultati vengono aggregati nella proprietà Page.IsValid. È inoltre possibile chiamare i controlli di convalida in modo esplicito tramite il metodo Validate. È opportuno verificare, a livello di codice, che la proprietà Page.IsValid restituisca true prima di elaborare l'input. Sebbene i browser abilitati agli script siano in grado di impedire il verificarsi di un postback sul client in caso di esito negativo in una verifica di convalida, è sempre opportuno verificare la proprietà Page.IsValid nel codice del server prima di elaborare i dati convalidati.

È 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.

NotaNota

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.

È possibile utilizzare un controllo CustomValidator senza impostare la proprietà ControlToValidate. Tale operazione viene eseguita in genere quando si esegue la valutazione di più controlli di input che non possono essere utilizzati con controlli di convalida, quale il controllo CheckBox. In questo caso, la proprietà Value del parametro arguments passato al gestore dell'evento ServerValidate e alla funzione di convalida sul lato client contiene sempre una stringa vuota (""). Tuttavia queste funzioni di convalida sono chiamate, se appropriate, per determinare la validità del server e del client. Per accedere al valore da convalidare, è necessario fare riferimento a livello di codice al controllo di input da convalidare e recuperare il valore dalla proprietà appropriata. Per convalidare un controllo CheckBox sul server, ad esempio, non impostare la proprietà ControlToValidate del controllo di convalida e utilizzare il codice seguente per il gestore dell'evento ServerValidate.

void ServerValidation (object source, ServerValidateEventArgs args)
 {
    args.IsValid = (CheckBox1.Checked == true);
 }

Per ulteriori informazioni sui controlli di convalida, vedere BaseValidator.

Accesso facilitato

Il codice sottoposto a rendering per impostazione predefinita per questo controllo potrebbe non essere conforme agli standard di accesso facilitato, come le linee guida WCAG (Web Content Accessibility Guidelines) 1.0 livello 1. Per informazioni dettagliate sul supporto dell'accesso facilitato per questo controllo, vedere Controlli ASP.NET e accesso facilitato.

ArgomentoPercorso
Procedura dettagliata: convalida dell'input dell'utente in una pagina Web FormGenerazione di applicazioni Web ASP.NET in Visual Studio
Procedura dettagliata: convalida dell'input dell'utente in una pagina Web FormCompilazione di applicazioni con Visual Web Developer
Procedura: convalidare in base a valori di un database per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a un intervallo di valori per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a un valore specifico per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a un tipo di dati per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: specificare il layout dei messaggi sul posto sui controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare le voci obbligatorie per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: visualizzare i messaggi di convalida personalizzati del lato server per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: eseguire il test della validità dei controlli server ASP.NET a livello di codiceCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a criteri i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare i controlli server ASP.NET a livello di codiceCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: formattare i messaggi di errore di convalida per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: eseguire la convalida con una funzione personalizzata per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: disattivare la convalida per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a valori di un database per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: convalidare in base a un intervallo di valori per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: convalidare in base a un valore specifico per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: convalidare in base a un tipo di dati per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: convalidare i controlli server ASP.NET a livello di codiceGenerazione di applicazioni Web ASP.NET
Procedura: formattare i messaggi di errore di convalida per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: eseguire la convalida con una funzione personalizzata per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: disattivare la convalida per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: specificare il layout dei messaggi sul posto sui controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: convalidare le voci obbligatorie per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: visualizzare i messaggi di convalida personalizzati del lato server per i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: eseguire il test della validità dei controlli server ASP.NET a livello di codiceGenerazione di applicazioni Web ASP.NET
Procedura: convalidare in base a criteri i controlli server ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: convalidare in base a valori di un database per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a un intervallo di valori per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a un valore specifico per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a un tipo di dati per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: specificare il layout dei messaggi sul posto sui controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare le voci obbligatorie per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: visualizzare i messaggi di convalida personalizzati del lato server per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: eseguire il test della validità dei controlli server ASP.NET a livello di codiceCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare in base a criteri i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: convalidare i controlli server ASP.NET a livello di codiceCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: formattare i messaggi di errore di convalida per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: eseguire la convalida con una funzione personalizzata per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: disattivare la convalida per i controlli server ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio

Nell'esempio di codice riportato di seguito viene illustrato come creare un controllo CustomValidator sul lato server.


<%@ Page Language="C#" AutoEventWireup="True" %>

<html>
<head>

   <script runat="server">

      void ValidateBtn_OnClick(object sender, EventArgs e) 
      { 

         // Display whether the page passed validation.
         if (Page.IsValid) 
         {

            Message.Text = "Page is valid.";

         }

         else 
         {

            Message.Text = "Page is not valid!";

         }

      }

      void ServerValidation(object source, ServerValidateEventArgs args)
      {

         try 
         {

            // Test whether the value entered into the text box is even.
            int i = int.Parse(args.Value);
            args.IsValid = ((i%2) == 0);

         }

         catch(Exception ex)
         {

            args.IsValid = false;

         }

      }

   </script>    

</head>
<body>

   <form runat="server">
  
      <h3>CustomValidator ServerValidate Example</h3>

      <asp:Label id="Message"  
           Text="Enter an even number:" 
           Font-Name="Verdana" 
           Font-Size="10pt" 
           runat="server"/>

      <p>

      <asp:TextBox id="Text1" 
           runat="server" />
    
      &nbsp;&nbsp;

      <asp:CustomValidator id="CustomValidator1"
           ControlToValidate="Text1"
           Display="Static"
           ErrorMessage="Not an even number!"
           ForeColor="green"
           Font-Name="verdana" 
           Font-Size="10pt"
           OnServerValidate="ServerValidation"
           runat="server"/>

      <p>
 
      <asp:Button id="Button1"
           Text="Validate" 
           OnClick="ValidateBtn_OnClick" 
           runat="server"/>

   </form>
  
</body>
</html>


Nell'esempio di codice riportato di seguito viene illustrato come creare un controllo CustomValidator sul lato client.


<%@ Page Language="C#" AutoEventWireup="True" %>

<html>
<head>

   <script runat="server">

      void ValidateBtn_OnClick(object sender, EventArgs e) 
      { 

         // Display whether the page passed validation.
         if (Page.IsValid) 
         {

            Message.Text = "Page is valid.";

         }

         else 
         {

            Message.Text = "Page is not valid!";

         }

      }

      void ServerValidation(object source, ServerValidateEventArgs args)
      {

         try 
         {

            // Test whether the value entered into the text box is even.
            int i = int.Parse(args.Value);
            args.IsValid = ((i%2) == 0);

         }

         catch(Exception ex)
         {

            args.IsValid = false;

         }

      }

   </script>    

</head>
<body>

   <form runat="server">
  
      <h3>CustomValidator ServerValidate Example</h3>

      <asp:Label id="Message"  
           Text="Enter an even number:" 
           Font-Name="Verdana" 
           Font-Size="10pt" 
           runat="server"/>

      <p>

      <asp:TextBox id="Text1" 
           runat="server" />
    
      &nbsp;&nbsp;

      <asp:CustomValidator id="CustomValidator1"
           ControlToValidate="Text1"
           ClientValidationFunction="ClientValidate"
           OnServerValidate="ServerValidation"
           Display="Static"
           ErrorMessage="Not an even number!"
           ForeColor="green"
           Font-Name="verdana" 
           Font-Size="10pt"
           runat="server"/>

      <p>
 
      <asp:Button id="Button1"
           Text="Validate" 
           OnClick="ValidateBtn_OnClick" 
           runat="server"/>

   </form>
  
</body>
</html>

<script language="vbscript">

   <!--

   Sub ClientValidate(source, arguments)
            
      If (arguments.Value mod 2) = 0 Then
         arguments.IsValid=true
      Else
         arguments.IsValid=false
      End If

   End Sub

   ' -->

</script>



System.Object
   System.Web.UI.Control
     System.Web.UI.WebControls.WebControl
       System.Web.UI.WebControls.Label
         System.Web.UI.WebControls.BaseValidator
          System.Web.UI.WebControls.CustomValidator

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft