Exporter (0) Imprimer
Développer tout

CustomValidator, classe

Effectue une validation définie par l'utilisateur sur un contrôle d'entrée.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

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

Utilisez le contrôle CustomValidator pour mettre en œuvre une fonction de validation définie par l'utilisateur pour un contrôle d'entrée. Le contrôle CustomValidator est un contrôle séparé du contrôle d'entrée qu'il valide, ce qui vous permet de contrôler où le message de validation est affiché.

Les contrôles de validation effectuent toujours une validation sur le serveur. Ils bénéficient également d'une implémentation côté client qui permet aux navigateurs activés pour les scripts (tels que Microsoft Internet Explorer 4.0 et versions ultérieures) d'effectuer une validation sur le client. La validation côté client améliore le processus de validation en vérifiant l'entrée d'utilisateur avant son envoi au serveur. Cela permet de détecter d'éventuelles erreurs sur le client avant d'envoyer le formulaire, évitant ainsi l'aller-retour des informations nécessaire à une validation côté serveur.

Pour créer une fonction de validation côté serveur, fournissez un gestionnaire pour l'événement ServerValidate qui exécute la validation. La chaîne du contrôle d'entrée à valider est accessible au moyen de la propriété Value de l'objet ServerValidateEventArgs passée au gestionnaire d'événements sous forme de paramètre. Le résultat de la validation est ensuite stocké dans la propriété IsValid de l'objet ServerValidateEventArgs.

Pour créer une fonction de validation côté client, ajoutez d'abord la fonction de validation côté serveur décrite précédemment. Ensuite, ajoutez la fonction de script de validation côté client à la page ASP.NET (.aspx).

Si vous utilisez Visual Basic Scripting Edition (VBScript), la fonction doit se trouver dans le formulaire suivant :

 Sub ValidationFunctionName(source, arguments)

Si vous utilisez JScript, la fonction doit prendre la forme suivante :

 function ValidationFunctionName(source, arguments)

Utilisez la propriété ClientValidationFunction pour spécifier le nom de la fonction de script de validation côté client associée au contrôle CustomValidator. La fonction de script étant exécutée sur le client, elle doit être écrite dans un langage pris en charge par le navigateur cible, par exemple VBScript ou JScript.

À l'instar de la validation côté serveur, la chaîne du contrôle d'entrée à valider est accessible à l'aide de la propriété Value du paramètre arguments. Retournez le résultat de la validation en définissant la propriété IsValid du paramètre arguments.

AttentionAttention

Lorsque vous utilisez des contrôles validateurs, vous devriez toujours vérifier les résultats de validation côté serveur avant d'exécuter tout traitement. Après une publication, mais avant que vos méthodes d'événement ne soient appelées, la page appelle les contrôles validateurs et regroupe leurs résultats dans la propriété Page.IsValid. (Vous pouvez également appeler explicitement les contrôles validateurs à l'aide de la méthode Validate.) Dans votre propre code, vous devriez vérifier que la propriété Page.IsValid retourne true avant de traiter une entrée. Bien que les navigateurs activés pour les scripts puissent empêcher une publication de se produire sur le client si la validation a échoué, vous devriez également toujours vérifier Page.IsValid dans le code serveur avant de traiter des données validées.

Plusieurs contrôles de validation peuvent être utilisés avec un contrôle d'entrée individuel pour valider différents critères. Par exemple, vous pouvez appliquer plusieurs contrôles de validation sur un contrôle TextBox qui permet à l'utilisateur d'entrer la quantité d'articles à ajouter dans un panier d'achat. Vous pouvez utiliser un contrôle CustomValidator pour vérifier que la valeur spécifiée est inférieure à la quantité en stock et un contrôle RequiredFieldValidator garantissant que l'utilisateur entre une valeur dans le contrôle TextBox.

RemarqueRemarque

Si le contrôle d'entrée est vide, aucune fonction de validation n'est appelée et la validation réussit. Utilisez un contrôle RequiredFieldValidator pour obliger l'utilisateur à entrer des données dans le contrôle d'entrée.

Il est possible d'utiliser un contrôle CustomValidator sans définir la propriété ControlToValidate. Cette situation est fréquente lorsque la validation porte sur plusieurs contrôles d'entrée ou sur des contrôles d'entrée qui ne peuvent pas être utilisés avec des contrôles de validation, tels que le contrôle CheckBox. Dans ce cas, la propriété Value du paramètre arguments passé au gestionnaire d'événements pour ServerValidate et à la fonction de validation côté client contient toujours une chaîne vide (""). Toutefois, ces fonctions de validation sont toujours appelées, lorsque cela est nécessaire, pour déterminer la validité au niveau du serveur et du client. Pour accéder à la valeur à valider, vous devez référencer par programme le contrôle d'entrée à valider, puis récupérer cette valeur à partir de la propriété appropriée. Par exemple, pour valider un contrôle CheckBox sur le serveur, ne définissez pas la propriété ControlToValidate du contrôle de validation et utilisez le code suivant pour le gestionnaire de l'événement ServerValidate :

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

Pour plus d'informations sur les contrôles de validation, consultez BaseValidator.

Accessibilité

Le balisage rendu par défaut pour ce contrôle peut ne pas se conformer aux normes d'accessibilité telles que les instructions de priorité 1 d'accessibilité du contenu Web (WCAG, Web Content Accessibility Guidelines). Pour plus d'informations sur la prise en charge d'accessibilité pour ce contrôle, consultez Contrôles et accessibilité ASP.NET.

RubriqueEmplacement
Comment : valider par rapport à une plage de valeurs pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider par rapport à une valeur spécifique pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider par rapport à un type de données pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : désactiver la validation pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : spécifier la présentation des messages sur place des contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider des entrées requises pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : afficher des messages de validation personnalisés côté serveur pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : tester par programme la validité pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider par rapport à des modèles pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Procédure pas à pas : validation des entrées d'utilisateur dans une page Web FormsGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider par rapport à des valeurs d'une base de données pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider par programme les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider à l'aide d'une fonction personnalisée pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : mettre en forme les messages d'erreur de validation pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET
Comment : valider par rapport à des valeurs d'une base de données pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider par rapport à une plage de valeurs pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider par rapport à une valeur spécifique pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider par rapport à un type de données pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : spécifier la présentation des messages sur place des contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider des entrées requises pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : validation des entrées d'utilisateur dans une page Web FormsGénération d'applications à l'aide de Visual Web Developer
Comment : afficher des messages de validation personnalisés côté serveur pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : tester par programme la validité pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider par rapport à des modèles pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider par programme les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : mettre en forme les messages d'erreur de validation pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : valider à l'aide d'une fonction personnalisée pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : désactiver la validation pour les contrôles serveur ASP.NETGénération d'applications Web ASP.NET dans Visual Studio

L'exemple de code suivant illustre la création d'un contrôle CustomValidator côté serveur.


<%@ 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>


L'exemple de code suivant illustre la création d'un contrôle CustomValidator côté 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>



  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

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

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft