Fermer

juillet 7, 2020

Assurer la validité des données dans les applications WinForms sans écrire de code2 minutes de lecture


La version R2 2020 de Telerik UI for WinForms est venue avec un tout nouvel outil de gestion de la validation: le fournisseur de validation Telerik. Vous pouvez désormais définir plusieurs règles de validation et les associer à des éditeurs sans avoir à écrire une seule ligne de code!

L'un des principaux défis rencontrés par les développeurs WinForms lors de la création d'applications de bureau est d'assurer la bonne exécution du projet. Très souvent, cette exécution est directement liée à l'entrée des utilisateurs. C'est pourquoi, avant de gérer les données d'entrée et de les soumettre au serveur, il est important de s'assurer que tous les contrôles de l'éditeur requis sur le formulaire sont remplis dans le format correct.

Je suis très heureux d'annoncer qu'à partir de R2 2020 L'interface utilisateur Telerik pour WinForms offre un nouvel outil puissant pour la gestion de la validation— RadValidationProvider . Ce petit composant, mais très puissant, fournit une gestion de validation des données pour les contrôles de l'éditeur. Vous pouvez facilement définir diverses règles de validation et les associer à tout RadEditorControl éligible à la logique de validation spécifiée.

Bien que RadValidationProvider vous permette de définir les règles par programme vous n'êtes pas obligé d'écrire de code. Notre objectif principal, pendant que nous travaillions sur la mise en œuvre du composant interne, était d'introduire une expérience intuitive au moment de la conception qui facilitera le processus de développement.

Maintenant. approfondissons les fonctionnalités du fournisseur de validation.

Imaginez que nous devons créer un formulaire de recherche simple pour réserver des vacances d'été. Avant d'exécuter la requête de recherche et de trouver les résultats appropriés proposés par l'agence de voyages, nous devons vérifier l'exactitude du formulaire.

Commençons par la conception suivante où nous avons deux RadDateTimePicker pour les dates de début / fin des vacances, deux RadSpinEditor pour définir notre gamme de prix et un RadDropDownList pour récupérer la destination:

 formulaire de réservation de vacances "title =" formulaire de réservation de vacances "/></p data-recalc-dims=

Les premières conditions qui me viennent à l'esprit afin de garantir que la requête de recherche sera être correct sont:

  • La date "Du" doit être inférieure à la date "Au"
  • Le prix "Minimum" doit être inférieur au prix "Maximum"
  • La destination de vacances ne doit pas être vide

Avant de continuer en outre, faites simplement glisser un RadValidationProvider de la boîte à outils et déposez-le sur le formulaire:

 RadValidationProvider in Form "title =" RadValidationProvider in Form "/></p data-recalc-dims=

Commençons par définir les règles de validation:

  1. Sélectionnez RadValidationProvider et cliquez sur la petite flèche en haut à droite dans l'ordre pour ouvrir la balise active. Ouvrez l'éditeur de collection FilterDescriptor en cliquant sur l'option Modifier les règles de validation dans la balise active et ajoutez deux éléments RadValidationRuleWithTargetControl :

     Ajout de deux éléments RadValidationRuleWithTargetControl "title =" Ajout de deux éléments RadValidationRuleWithTargetControl "/></p data-recalc-dims=

  2. Ouvrez la liste déroulante Contrôles et vérifiez radDateTimePicker1 :

     Checking radDateTimePicker1 "title =" Checking radDateTimePicker1 "/></p data-recalc-dims=

  3. Spécifiez ensuite Operator PropertyName TargetControl (définissez-le sur radDateTimePicker2 ), TargetControlPropertyName et TooltipText :

     Spécification des valeurs "title =" Spécification des valeurs "/></p data-recalc-dims=

  4. Sélectionnez le second RadValidationRuleWithTargetControl . Cette fois, nous allons vérifier radDateTimePicker2 dans le menu déroulant Controls et le TargetControl sera radDateTimePicker1 :

     Spécification des valeurs 2 "title =" Spécification des valeurs 2 "/></p data-recalc-dims=

  5. Maintenant, si vous vous concentrez sur « From » RadDateTimePicker et sélectionnez une date supérieure à « To » RadDateTimePicker vous ne serez pas autorisé à quitter le contrôle. Une fois que vous avez entré une valeur valide répondant à cette règle de validation, vous serez autorisé à naviguer vers un autre contrôle. Si vous vous concentrez sur « à » RadDateTimePicker et sélectionnez une date inférieure à « From » RadDateTimePicker l'erreur définie apparaîtra.

     ValidateDates "title =" ValidateDates "/></p data-recalc-dims=

  6. De manière similaire, nous définirons deux autres RadValidationRuleWithTargetControl éléments qui valident que le prix « Minimum » ( radSpinEditor1 ) est inférieur au « Prix maximum »( radSpinEditor2 ) et le prix« Maximum »est supérieur au prix« Minimum »:

     Définir deux éléments RadValidationRuleWithTargetControl supplémentaires 1 "title =" Définir deux éléments RadValidationRuleWithTargetControl supplémentaires 1 "/> <img src= RadSpinEditor correspondent à la validation. Sinon, vous pouvez rester bloqué lorsque vous concentrez le prix " Minimum " RadSpinEditor pour la première fois, par exemple si les deux contrôles ont une valeur initiale = 0. Quelle que soit la valeur que vous entrez dans le " Prix minimum RadSpinEditor vous ne pourrez pas le valider et quitter le contrôle.  ValidatePrice "title =" ValidatePrice "/></p data-recalc-dims=

  7. L'étape suivante consiste à vérifier si l'utilisateur a sélectionné une destination. Ajoutez une RadValidationRule et basculez radDropDownList1 dans la liste déroulante Controls . Ensuite, définissez la logique de validation pour vérifier si SelectedIndex n'est pas -1 :

 Définition de la logique de validation pour la destination 1 "title =" Définition de la logique de validation pour la destination 1 "/> [19659035] Définir la logique de validation pour la destination 2 "title =" Définir la logique de validation pour la destination 2 "/> <br data-recalc-dims= Définir la logique de validation pour la destination 3" title = "Définir la logique de validation pour la destination 3" /></p data-recalc-dims=

Le type de données de la valeur peut être spécifiée après avoir d'abord entré une valeur, puis sélectionné le type dans la liste déroulante. Ainsi, l'expression correcte sera sérialisée.

 ValidateDestination "title =" ValidateDestination "/></p data-recalc-dims=

Voilà ! Sans même écrire une seule ligne de code, nous avons assuré la validité des données de base de notre formulaire de recherche.

Règles composites

RadValidationProvider propose également un troisième type de règle, appelé RadCompositeValidationRule . Il permet de définir une logique de validation plus complexe en ajoutant plusieurs éléments RadValidationRule ou RadValidationRuleWithTargetControl [196590009] qui sont combinés avec un opérateur logique. L'objectif principal ici est de couvrir les cas où la valeur d'un certain contrôle doit répondre à certaines exigences compte tenu des valeurs de plusieurs autres contrôles. Par exemple, si vous devez ajouter radSpinEditor3 dont la valeur doit être supérieure à radSpinEditor1 et inférieure à radSpinEditor2 le RadCompositeValidationProvider fit:

  1. Ajouter un RadCompositeValidationRule :  Ajouter un RadCompositeValidationRule "title =" Ajouter un RadCompositeValidationRule "/></li data-recalc-dims=
  2. Sa collection ValidationRules vous permet de définir autant de n règles selon vos besoins:  Collection ValidationRules "title =" Collection ValidationRules "/></li data-recalc-dims=
  3. Ajoutez deux RadValidationRuleWithTargetControl éléments où radSpinEditor3 est vérifié dans les contrôles ] collection pour les deux. Le TargetControl pour la première règle sera radSpinEditor1 et pour la deuxième règle sera radSpinEditor2 . Définissez la logique supérieure à / inférieure à et cliquez sur OK:  Définir plus que logique "title =" Définir plus que logique "/> <img src= LogicalOperator sur « And» et remplissez ToolTipText :  LogicalOperator et ToolTipText "title =" LogicalOperator and ToolTipText "/></li data-recalc-dims=

Exécutez le projet et essayez d'entrer une valeur aléatoire:  Validation in Action "title =" Validation in Action "/></p data-recalc-dims=

Notez qu'aucun des contrôles associés (par exemple radSpinEditor3) d'une règle composite ne doit être ajouté en tant que cible dans l'une des règles imbriquées! Soyez prudent lorsque vous définissez des règles composites afin d'obtenir la logique de validation appropriée. Habituellement, il est même possible de simplifier la logique de validation et de définir des RadValidationRuleWithTargetControls séparés en dehors d'une règle composite.

C'est tout! Pas de code, mais une diversité de logique de validation partout. C'est assez facile, n'est-ce pas?

Bonne validation!

Essayez-le et partagez vos commentaires

Les nouveaux contrôles et fonctionnalités R2 2020 sont actuellement disponibles en téléchargement dans les comptes des clients . Si vous débutez avec Telerik UI pour WinForms, vous pouvez en savoir plus à ce sujet via la page produit . Il est accompagné d'un essai gratuit de 30 jours ce qui vous donne le temps d'explorer la boîte à outils et d'envisager de l'utiliser pour votre développement WinForms actuel ou à venir.




Source link

0 Partages