Par défaut, les contrôles de validation ASP.NET effectuent automatiquement la validation lorsque la page est renvoyée sur le serveur, après l'initialisation de la page (c'est-à-dire après le traitement de l'état d'affichage et des données de publication) et avant l'appel du code de gestion des événements. Si le navigateur prend en charge les scripts côté client, le contrôle peut également effectuer une validation dans le navigateur.
Cependant, vous devrez parfois effectuer une validation par programme. Vous devrez peut-être effectuer une vérification par programme dans les situations suivantes :
·Si la valeur de validation n'a pas été définie au moment de l'exécution. Par exemple, si vous utilisez un contrôle RangeValidator, vous souhaiterez peut-être définir ses propriétés MinimumValue et MaximumValue au moment de l'exécution en fonction de la valeur saisie par l'utilisateur. La validation par défaut ne fonctionne pas pour le moment car il n'y a pas suffisamment d'informations dans le contrôle RangeValidator lorsque la page appelle le contrôle de validation pour effectuer la validation.
· Nécessité de déterminer la validité du contrôle (ou de la page entière) dans le gestionnaire d'événements Page_Load. Pendant la phase de traitement de la page, le contrôle de validation n'a pas encore été appelé, donc la propriété IsValid de la page ou des contrôles individuels n'a pas été définie. (Si vous essayez d'obtenir la valeur de cette propriété, une exception sera levée.) Mais si vous souhaitez déterminer la validité, vous pouvez appeler la validation par programme.
·Vous modifiez un contrôle (soit un contrôle d'entrée, soit un contrôle de validation) au moment de l'exécution.
Le plus souvent, vous pouvez vérifier par programmation à tout moment, ce qui vous donne un contrôle plus précis sur le moment où la vérification est effectuée.
Appelez la méthode Validate du contrôle de validation.
Le contrôle effectue des vérifications et définit la propriété IsValid du contrôle et de la page. Si une erreur est détectée, le message d'erreur s'affichera comme d'habitude lorsque la page sera renvoyée à l'utilisateur.
L'exemple de code suivant montre comment définir les propriétés par programme. Dans ce cas, une page Web ASP.NET réserve une chambre dans un complexe, offrant ainsi un déplacement gratuit vers et depuis chaque visite. Les utilisateurs doivent saisir les dates d'arrivée et de départ puis planifier leur emploi du temps lors de la visite. Le contrôle RangeValidator est utilisé pour garantir que l'utilisateur saisit un format de date typique et que la date de voyage doit être comprise entre les dates d'arrivée et de départ.
Description : le contrôle validateur lève une exception si la valeur saisie par l'utilisateur ne peut pas être convertie en date. Pour plus de clarté, cet exemple n’inclut pas la gestion des erreurs.
Les dates d'arrivée et de départ proviennent de deux contrôles de serveur Web TextBox sur la page, txtArrival et txtDeparture. La date du voyage est saisie dans le troisième contrôle TextBox, txtTourDate, qui est validé par le contrôle RangeValidator.
Remarque : lors de la validation par programme, les scripts côté client doivent être désactivés afin que le contrôle n'affiche pas de messages d'erreur incorrects avant l'exécution de votre code de validation côté serveur.
private void Button1_Click (expéditeur d'objet, System.EventArgs e)
{
RangeValidator1.MinimumValue = txtArrival.Text;
RangeValidator1.MaximumValue = txtDeparture.Text;
RangeValidator1.Type = ValidationDataType.Date ;
RangeValidator1.Validate();
si (!RangeValidator1.IsValid)
{
RangeValidator1.ErrorMessage = "La date de la tournée doit " +
"se situer entre les dates d'arrivée et de départ.";
}
}
Cet article provient du blog CSDN. Veuillez indiquer la source lors de la réimpression :
http://blog.csdn.net/dodream/archive/2009/12/17/5024666.aspx