Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

BaseValidator, classe

Sert de classe de base abstraite pour des contrôles de validation.

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

public abstract class BaseValidator : Label, IValidator
public abstract class BaseValidator extends Label implements IValidator
public abstract class BaseValidator extends Label implements IValidator

La classe BaseValidator fournit l'implémentation principale pour tous les contrôles de validation. Les contrôles de validation sont utilisés pour valider l'entrée d'utilisateur dans un contrôle d'entrée associé. Lorsque la validation de la valeur entrée par l'utilisateur échoue, le contrôle de validation affiche un message d'erreur. Étant donné que le contrôle de validation est distinct du contrôle d'entrée, vous pouvez placer le message d'erreur n'importe où sur la page relative au contrôle d'entrée. ASP.NET fournit plusieurs contrôles de validation qui exécutent des types de validation spécifiques. Le tableau suivant décrit ces contrôles.

Contrôle de validation

Description

CompareValidator

Valide une valeur par rapport à la valeur entrée dans un autre contrôle d'entrée, par rapport à une valeur de constante ou par rapport à un type de données approprié en affectant la valeur ValidationCompareOperator.DataTypeCheck à la propriété CompareValidator.Operator.

CustomValidator

Valide une valeur à l'aide d'une routine de validation personnalisée fournie par l'utilisateur.

RangeValidator

Valide si une valeur se trouve dans une plage de valeurs.

RegularExpressionValidator

Valide une valeur à l'aide d'une expression régulière.

RequiredFieldValidator

Vérifie qu'une valeur a été entrée dans un champ requis.

Les contrôles de validation valident toujours le contrôle d'entrée associé 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.

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. Vous pouvez utiliser un contrôle RangeValidator pour vous assurer que la valeur entrée dans le contrôle TextBox est comprise dans une plage définie et un contrôle RequiredFieldValidator pour vous assurer que l'utilisateur entre une valeur.

ASP.NET fournit de nombreux contrôles qui ont la capacité de publier sur le serveur. Lorsque la valeur true est affectée à la propriété CausesValidation de l'un de ces contrôles, la validation est exécutée lorsque le contrôle publie sur le serveur. Les contrôles suivants ont la capacité de publier sur le serveur :

RemarqueRemarque

Certains de ces contrôles publient sur le serveur seulement lorsque la valeur true est affectée à la propriété AutoPostBack.

Chacun de ces contrôles a une propriété ValidationGroup qui, lorsqu'elle est définie, valide seulement les contrôles de validation dans le groupe spécifié, lorsque le contrôle déclenche une publication sur le serveur. Pour grouper des contrôles de validation,affectez la même valeur à la propriété ValidationGroup de chaque contrôle de validation.

Pour associer un contrôle d'entrée à un contrôle de validation, utilisez la propriété ControlToValidate. Pour spécifier le texte à afficher dans un contrôle de validation lorsque la validation échoue, utilisez la propriété Text. Vous pouvez également afficher un résumé de tous les contrôles pour lesquels la validation a échoué dans la page à l'aide d'un contrôle ValidationSummary. Pour spécifier le texte à afficher dans un contrôle ValidationSummary, utilisez la propriété ErrorMessage.

RemarqueRemarque

Si vous définissez la propriété ErrorMessage sans définir la propriété Text, la valeur de la propriété ErrorMessage est également affichée dans le contrôle de validation.

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.

Vous pouvez également exécuter la validation manuellement. Pour valider tous les contrôles de validation sur la page, utilisez la méthode Page.Validate. Les contrôles de validation peuvent être validés à l'aide de la méthode Validate du contrôle.

RemarqueRemarque

Si vous utilisez la propriété Page.IsValid dans une méthode Page_Load, vous devez d'abord appeler explicitement la méthode Page.Validate. Étant donné que la validation se produit après l'événement Control.Load pour la page mais avant le gestionnaire d'événements pour les événements Click ou Command, la propriété Page.IsValid n'est pas mise à jour tant que la méthode Page.Validate n'est pas appelée. Vous pouvez également placer votre code dans le gestionnaire d'événements pour l'événement Click ou Command au lieu de la méthode Page_Load.

Tous les contrôles serveur Web ne prennent pas en charge les contrôles de validation. Les contrôles standard qui peuvent être validés avec un contrôle de validation sont :

RemarqueRemarque

Pour qu'un contrôle d'entrée soit validé, l'attribut System.Web.UI.ValidationPropertyAttribute doit être appliqué au contrôle.

Lorsque la validation échoue, vous pouvez définir le focus sur le contrôle d'entrée associé en affectant la valeur true à la propriété SetFocusOnError.

Pour obtenir la liste des valeurs de propriétés initiales d'une instance de BaseValidator, consultez le constructeur 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.

Remarques à l'attention des héritiers Lorsque vous héritez de la classe BaseValidator, vous devez substituer le membre suivant : EvaluateIsValid.

L'exemple de code suivant illustre comment utiliser plusieurs contrôles de validation pour vérifier que l'utilisateur entre une valeur valide dans un contrôle TextBox.

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

<script runat="server">
 
  void Button_Click(Object sender, EventArgs e) 
  {
    if (Page.IsValid)
    {
      MessageLabel.Text = "Page submitted successfully.";
    }
    else
    {
      MessageLabel.Text = "There is an error on the page.";
    }
  }
 
</script>

<html>
  <body>
    <form runat="server">

      <h3>Validator Example</h3>
     
      Enter a number from 1 to 10.
      <asp:textbox id="NumberTextBox" 
        runat="server"/>

      <asp:rangevalidator id="NumberCompareValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"  
        type="Integer"
        display="Dynamic" 
        errormessage="Please enter a value from 1 to 10."
        maximumvalue="10"
        minimumvalue="1"  
        text="*"
        runat="server"/>

      <asp:requiredfieldvalidator id="TextBoxRequiredValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"
        display="Dynamic" 
        errormessage="Please enter a value."
        text="*"
        runat="server"/>

      <br><br>

      <asp:button id="SubmitButton"
        text="Submit"
        onclick="Button_Click"
        runat="server"/>
 
      <br><br>
       
      <asp:label id="MessageLabel" 
        runat="server"/>

      <br><br>

      <asp:validationsummary
        id="ErrorSummary"
        runat="server"/>
 
    </form>
  </body>
</html>


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
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft