IFT1148 Saisie de données et validation



Documents pareils
Création d un formulaire de contact Procédure

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Utilisation d objets : String et ArrayList

Manuel de l administrateur

Administration du site (Back Office)

Initiation à LabView : Les exemples d applications :

Gestion des réunions dans Outlook 2007

Création et utilisation de formulaire pdf

Base de Connaissances SiteAudit. Utiliser les Rapports Planifiés. Sommaire des Fonctionnalités. Les Nouveautés

EXCEL TUTORIEL 2012/2013

TP 1. Prise en main du langage Python

Club informatique Mont-Bruno Séances du 05 octobre et du 24 octobre 2012 Présentateurs : Réjean Côté

C RÉATION DE PDF (1) Cours SEM 205 Mieux utiliser le format PDF

Groupe Eyrolles, 2006, pour la présente édition, ISBN :

Mon-complement-retraite.com Aide en ligne

Présentation du langage et premières fonctions

La gestion des boîtes aux lettres partagées

Introduction au logiciel de gestion bibliographique Zotero

TP JAVASCRIPT OMI4 TP5 SRC

BIRT (Business Intelligence and Reporting Tools)

Prise en main rapide

Note de cours. Introduction à Excel 2007

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

Principales Evolutions Version

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Débuter avec Excel. Excel

GUIDE D UTILISATION DU BROWSER DE BEYOND 20/20

GUIDE Excel (version débutante) Version 2013

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

Excel 2007 Niveau 3 Page 1

Utiliser un tableau de données

Créer sa première base de données Access Partie 4/4 - Création d un état

PROCÉDURE D AIDE AU PARAMÉTRAGE

La Clé informatique. Formation Internet Explorer Aide-mémoire

TABLEAU CROISE DYNAMIQUE

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

ESPACE COLLABORATIF. L Espace Collaboratif : votre espace de partage entre acteurs régionaux

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Utilisation du nouveau webmail académique

PLANIFIER UNE RÉUNION AVEC DOODLE

Activité 11 : Nuage de points ou diagramme de dispersion

Création d un site Internet

Tutoriel. Votre site web en 30 minutes

Club informatique Mont-Bruno Séances du 08 et 20 novembre 2013 Présentateur : Guy Bélanger Co-auteur : Réjean Côté

Utilisation de l éditeur.

point On obtient ainsi le ou les points d inter- entre deux objets».

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

CAPTURE DES PROFESSIONNELS

GUIDE D UTILISATION DU BACKOFFICE

STAGE IREM 0- Premiers pas en Python

Comment utiliser RoundCube?

Gestion des documents avec ALFRESCO

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

Fiche aide pour votre messagerie Outlook, thunderbird, Gmail

Mon aide mémoire traitement de texte (Microsoft Word)

Initiation à Excel. Frédéric Gava (MCF)

Guide de configuration. Logiciel de courriel

Sécurisation de Windows NT 4.0. et Windows 2000

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

COURS DE MS EXCEL 2010

Bienvenue à l historien virtuel 2.0

TP1 - Prise en main de l environnement Unix.

INTRODUCTION AU CMS MODX

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Introduction à Expression Web 2

Manuel du composant CKForms Version 1.3.2

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopas dfghjklzxcvbnmqwertyuiopasdfghjklz mqwertyuiopasdfghjklzxcvbnmqwert

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Alain DI MAGGIO Mise à jour sur le site 11/01/10

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

Sélection du contrôleur

Guide de développement de «WorkFLows» avec SharePoint Designer 2013

Guide d utilisation des services My Office

ASP.NET 2.0, C#, Spring.Net et NHibernate

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Publier dans la Base Documentaire

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE LA FORMATION PROFESSIONNELLE. Microsoft. Excel XP

Calc 2 Avancé. OpenOffice.org. Guide de formation avec exercices et cas pratiques. Philippe Moreau

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Publier un Carnet Blanc

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Guide de démarrage IKEY 2032 / Vigifoncia

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Installation et utilisation du client FirstClass 11

GUIDE DES PROFESSEURS(ES) POUR LÉA Version du 27 janvier 2009

Guide de l utilisateur Mikogo Version Windows

Formation. Module WEB 4.1. Support de cours

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

CREG : versailles.fr/spip.php?article803

Création WEB avec DreamweaverMX

Guide de présentation du courrier électronique. Microsoft Outlook Préparé par : Patrick Kenny

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

Transcription:

IFT1148 Saisie de données et validation Michael Blondin Direction de l enseignement de service en informatique Université de Montréal Hiver 2011 1 / 51

Entrée des données : liste déroulante La liste déroulante permet à l utilisateur de choisir une valeur dans une liste. Pour utiliser une telle liste dans une page Web, il suffit d insérer le contrôle DropDownList à partir de la boîte à outils. 2 / 51

Entrée des données : liste déroulante Pour insérer des éléments à la liste, il suffit de cliquer sur le bouton «...» grâce à la propriété Items du menu «Propriétés». Un élément possède les propriétés suivantes : Enabled : indique si l élément est affiché. Selected : indique si l élément est sélectionné par défaut. Text : texte affiché dans la liste. Value : valeur associée à l élément. 3 / 51

Entrée des données : liste déroulante Pour accéder à l élément sélectionné au niveau du code, il faut utiliser la propriété SelectedItem. Il est ensuite possible de récupérer le texte et la valeur de l élément grâce aux propriétés Text et Value. La propriété SelectedIndex permet de sélectionner un élément à l aide de son indice. 4 / 51

Entrée des données : liste déroulante La propriété Items se comporte comment une List et permet de gérer les éléments de la liste déroulante. L opérateur [] permet donc d accéder aux éléments et les méthodes Add et Remove permettent d insérer et supprimer des éléments. 5 / 51

Entrée des données : liste déroulante Les éléments de la liste sont de type ListItem. Pour insérer un élément, il faut donc procéder de l une de ces façons : Syntaxe ListItem element1 = new ListItem("Texte"); ListItem element2 = new ListItem("Texte", "Valeur"); ListItem element3 = new ListItem("Texte", "Valeur", etat); MaListe.Items.Add(element1); // La valeur est identique au texte MaListe.Items.Add(element2); // Actif par defaut MaListe.Items.Add(element3); // Actif seulement si etat est vrai 6 / 51

Entrée des données : liste déroulante Les listes déroulantes possèdent un événement SelectedIndexChanged qui est déclenché lorsqu un nouvel élément est sélectionné dans la liste. Cela peut être utile pour mettre le contenu de la page à jour en fonction du choix de l utilisateur (son pays par exemple). 7 / 51

Entrée des données : liste ouverte La liste ouverte est similaire à la liste déroulante. Pour parcourir ses éléments, il faut cependant utiliser une barre de défilement. De plus, il est possible de sélectionner plusieurs éléments si nécessaire. Pour utiliser une telle liste dans une page Web, il suffit d insérer le contrôle ListBox à partir de la boîte à outils. 8 / 51

Entrée des données : liste ouverte Pour insérer des éléments à la liste, il suffit de cliquer sur le bouton «...» grâce à la propriété Items du menu «Propriétés» comme dans le cas de la liste déroulante. Il est possible d indiquer combien d éléments sont visibles grâce à la propriété Rows. La propriété SelectedItem permet d accéder au premier élément sélectionné. 9 / 51

Entrée des données : liste ouverte Il est possible de permettre à l utilisateur de sélectionner plusieurs éléments dans la liste en affectant la valeur Multiple à la propriété SelectionMode. Pour sélectionner plusieurs éléments, l utilisateur doit tenir la touche Ctrl enfoncée et cliquer sur les différents éléments. 10 / 51

Entrée des données : liste ouverte Supposons que l on veule récupérer la valeur associée à tous les éléments sélectionnés et les stocker dans une liste, nous pourrions procéder ainsi : Exemple List<string> valeurs = new List<string>(); for (int i = 0; i < Liste.Items.Count; i++) if (Liste.Items[i].Selected) valeurs.add(liste.items[i].value); 11 / 51

Entrée des données : liste de cases à cocher La liste de cases à cocher permet de regrouper un ensemble de cases à cocher Pour utiliser une telle liste dans une page Web, il suffit d insérer le contrôle CheckBoxList à partir de la boîte à outils. 12 / 51

Entrée des données : liste de cases à cocher Pour insérer des éléments à la liste, il suffit de cliquer sur le bouton «...» grâce à la propriété Items du menu «Propriétés» comme dans le cas des autres listes. Il est possible d indiquer la façon dont les éléments sont affichés grâce aux propriétés suivantes : RepeatColumns : nombre de colonnes utilisées pour présenter les cases. RepeatDirection : direction dans laquelle les éléments sont présentés. TextAlign : alignement du texte par rapport aux cases. 13 / 51

Entrée des données : liste de cases à cocher La gestion des éléments est indentique à celle des listes ouvertes. Supposons qu une page contient une liste de cases à cocher (ListeCases) et une liste ouverte (Liste). Le code suivant ajoute tous les éléments cochés à la liste ouverte : Exemple for (int i = 0; i < ListeCases.Items.Count; i++) { ListItem element = ListeCases.Items[i]; } if (element.selected) Liste.Items.Add(new ListItem(element.Text, element.value)); 14 / 51

Entrée des données : liste de cases d option La liste de cases d option est similaire à la liste de cases à cocher. Toutefois, les éléments d une telle liste sont mutuellement exclusifs, ainsi la sélection d un élément entraine la déselection des autres. Pour utiliser une telle liste dans une page Web, il suffit d insérer le contrôle RadioButtonList à partir de la boîte à outils. La gestion des éléments et du style est identique à celle des listes de cases à cocher. 15 / 51

Entrée des données : panneau Un panneau permet de regrouper un ensemble de contrôles. Il est pratique pour cacher ou désactiver un groupe de contrôles dans un formulaire. Pour utiliser ce contrôle dans une page Web, il suffit d insérer le contrôle Panel à partir de la boîte à outils. Pour regrouper des contrôles, ceux-ci sont insérés à l intérieur du panneau. 16 / 51

Entrée des données : panneau Supposons qu une page contienne une case à cocher ainsi qu un panneau contenant un certain nombre de contrôles. 17 / 51

Entrée des données : panneau En ajoutant le code suivant à l événement CheckedChanged : Exemple Panneau.Visible = CaseACocher.Checked; Et en décochant la case à cocher, nous obtenons : 18 / 51

Entrée des données : panneau En ajoutant le code suivant à l événement CheckedChanged : Exemple Panneau.Enabled = CaseACocher.Checked; Et en décochant la case à cocher, nous obtenons : 19 / 51

Entrée des données : panneau Les panneaux possèdent certaines propriétés intéressantes : GroupingText : titre du panneau. HorizontalAlign : alignement horizontal du contenu. ScrollBars : apparence des barres de défilement. 20 / 51

Manipulations de données Puisque les données sont entrées sous forme de chaînes de caractères, il est pratique de connaître quelques façons de les manipuler. Voici quelques propriétés et méthodes intéressantes : Length : longueur de la chaîne. Substring : permet d obtenir une sous-chaîne. ToLower : convertit toutes les lettres en minuscules. ToUpper : convertit toutes les lettres en majuscules. Trim : efface les espaces en début et fin de chaîne. 21 / 51

Manipulations de données Voici quelques manipulations de chaînes de caractères : Exemple string foo = "Bonjour!"; string bar = " Salut tout le monde. "; // -- - foo.length; // == 8 foo.tolower(); // == "bonjour!" foo.toupper(); // == "BONJOUR!" bar.trim(); // == "Salut tout le monde." bar.substring(2, 5); // == "Salut" bar.trim().substring(6); // == "tout le monde." 22 / 51

Manipulations de données La méthode String.Format permet de simplifier la génération de messages à partir de données variables. Pour ce faire, il suffit d insérer des paramètres substituables dans une chaîne de caractère, grâce à une certaine syntaxe, puis de donner des valeurs à celles-ci à l aide de String.Format. 23 / 51

Manipulations de données Voici quelques utilisations de la méthode String.Format : Exemple string foo = "Je me nomme {0} {1}."; string bar = "Je me nomme {0} {1}. Mon prenom est {0}."; string baz = "Je me nomme {1}, {0}. Je suis {2}."; String.Format(foo, "Alan", "Turing"); /* == "Je me nomme Alan Turing." */ String.Format(bar, "Edsger", "Dijkstra"); /* == "Je me nomme Edsger Dijkstra. Mon prenom est Edsger." */ String.Format(baz, "Donald", "Knuth", "informaticien"); /* == "Je me nomme Knuth, Donald. Je suis informaticien." */ 24 / 51

Validation ASP.NET possède plusieurs contrôles permettant de valider le format de données. On nomme ces contrôles des validateurs. Un validateur est associé à un contrôle et permet de vérifier que son contenu respecte certains critères. 25 / 51

Validation Il existe plusieurs types de validateurs qui permettent de traiter les cas communs : «RequiredFieldValidator» : vérifie si un champ est vide. «RangeValidator» : vérifie si un nombre est dans un intervalle. «CompareValidator» : compare la donnée avec une valeur. «RegularExpressionValidator» : vérifie si la donnée respecte un certain motif de caractères. 26 / 51

Validation Pour ajouter un validateur, il suffit d accéder à l onglet «Validation» de la boîte à outils et d insérer le validateur à l endroit désiré sur la page. Il faut ensuite spécifier le contrôle à valider grâce à la propriété ControlToValidate propre à tous les validateurs. 27 / 51

Validation Graphiquement, un validateur se comporte comme une étiquette contenant un message d erreur. Il est possible de modifier le message grâce à la propriété ErrorMessage. De plus, la propriété Display indique de quelle façon l étiquette est affichée : Static : Espace utilisé lorsque le message n est pas affiché. Dynamic : Aucun espace utilisé lorsque le message n est pas affiché. None : Jamais affiché. 28 / 51

Validation : valeurs requises Le «RequiredFieldValidator» permet de vérifier si une valeur a été entrée dans un champ. Comme son nom l indique, ce validateur est utile pour rendre des champs obligatoires dans un formulaire. 29 / 51

Validation : intervalles Le «RangeValidator» permet de vérifier si une valeur est comprise dans un intervalle. Pour spécifier l intervalle, il faut utiliser les propriétés suivantes : MinimumValue : valeur minimale de l intervalle. MaximumValue : valeur maximale de l intervalle. Type : type des données de l intervalle (entier, nombre à virgule flottante, date, valeur monétaire, chaîne de caractères). 30 / 51

Validation : comparaisons Le «CompareValidator» permet de vérifier si une comparaison entre deux valeurs est vraie. Par défaut, l opération de comparaison utilisée est l égalité, il est cependant possible de spécifier les opérations suivantes grâce à la propriété Operator : Equal : égal à ( = ). NotEqual : différent de ( ). GreaterThan : plus grand que ( > ). GreaterThanEqual : plus grand ou égal à ( ). LessThan : plus petit que ( < ). LessThanEqual : plus petit ou égal à ( ). 31 / 51

Validation : comparaisons Il existe deux façons de spécifier la valeur avec laquelle l entrée doit être comparée. La deuxième valeur peut être constante ou provenir d un deuxième champ. Pour spécifier la valeur, il faut donc utiliser l une de ces deux propriétés : ValueToCompare : valeur constante. ControlToCompare : contrôle contenant la seconde valeur. 32 / 51

Validation : comparaisons Le «CompareValidator» permet aussi de vérifier si une valeur est d un certain type. Pour ce faire, il suffit d utiliser l opérateur DataTypeCheck grâce à la propriété Operator. Dans ce cas, la propriété Type détermine le type à valider. 33 / 51

Validation : expression régulières Le «RegularExpressionValidator» permet de vérifier si le format d une chaîne de caractères respecte un certain motif. Le motif est spécifier à l aide d une expression régulière grâce à la propriété ValidationExpression. 34 / 51

Validation : expression régulières Une expression régulière est une chaîne de caractère qui décrit un ensemble de chaînes de caractères selon une certaine syntaxe. Voici quelques exemples d expressions : Exemple abc ^abc abc$ ^abc$ chaînes contenant abc chaînes débutant par abc chaînes se terminant par abc chaîne abc 35 / 51

Validation : expression régulières Voici certains motifs pouvant être réalisés : Syntaxe Motif ^ début de chaîne \d chiffre \s caractère d espacement. caractère (autre qu un caractère de saut de ligne) $ fin de chaîne 36 / 51

Validation : expression régulières Il est possible de regrouper un motif à l aide des paranthèses. L opérateur permet d indiquer qu un motif parmi deux est nécessaire. Exemple a b ^(allo) (bonjour)$ ^a(b c)d$ chaînes contenant au moins un a ou un b chaîne allo ou bonjour chaîne abd ou acd 37 / 51

Validation : expression régulières Par la suite, il peut être pratique de quantifier le nombre d apparitions d un motif à l aide de ces expressions : Syntaxe Motif * zéro ou plusieurs instances du motif précédent + une ou plusieurs instances du motif précédent? zéro ou une instance du motif précédent {n} n instances du motif précédent {n,} au moins n instances du motif précédent {n,m} entre n à m instances du motif précédent 38 / 51

Validation : expression régulières Voici quelques exemples plus d expressions plus complexes : Exemple ^a(a b)*$ (ab){5,} ^\d+(,\d+)?$ chaînes débutant par a et contenant seulement des a,b chaînes contenant ababababab nombres entiers et à virgule flottante 39 / 51

Validation : expression régulières Il est possible de spécifier des ensembles de caractères à l aide de ces motifs : Syntaxe Motif [...] un caractère contenu dans [] [^...] un caractère non contenu dans [] [a-z] une lettre minuscule entre a et z [A-Z] une lettre majuscule entre A et Z [0-9] un chiffre entre 0 et 9 Notez que pour les trois derniers motifs, il est possible de remplacer z, Z et 9 par des symboles plus petits. 40 / 51

Validation : expression régulières Voici quelques exemples plus d expressions plus complexes : Exemple ^a[a-z]*a$ ^[A-Z]{1}[a-z]*$ mots en minuscule débutant et se terminant par a mots débutant par une majuscule 41 / 51

Validation : expression régulières Le «RegularExpressionValidator» possède plusieurs expressions régulières complexes prédéféfinies. Pour les obtenir, il suffit de cliquer sur le bouton «...» dans la propriété ValidationExpression du validateur grâce au menu «Propriétés». Voici quelques exemples d expressions disponibles : Adresse de courriel Numéro de téléphone Adresse URL 42 / 51

Validation : validateurs personnalisés Le «CustomValidator» permet d effectuer une validation personnalisée de son choix. Pour ce faire, une méthode doit être codée et associée au validateur. Ce type de validateur possède un événement nommé ServerValidate qui est apppelé lorsqu une validation est effectuée du côté serveur. 43 / 51

Validation : validateurs personnalisés La méthode associée à l événement ServerValidate possède deux paramètres. Pour obtenir la valeur à valider, il suffit d accéder à la chaîne de caractères args.value. Lorsque la validation est terminée, il est nécessaire d indiquer le résultat grâce à la propriété booléeene args.isvalid (true si réussie, false sinon). 44 / 51

Validation : validateurs personnalisés Il est possible d accéder au validateur ayant déclenché l événement de validation. Pour ce faire, il faut utiliser le paramètre source. Il est cependant nécessaire de convertir ce paramètre en CustomValidator. Par exemple, pour obtenir le nom du validateur et du contrôle validé, il suffit d utiliser le code suivant : Exemple CustomValidator validateur = (CustomValidator)source; string nomvalidateur = validateur.id; string nomcontrole = validateur.controltovalidate; 45 / 51

Validation : validateurs personnalisés Pour que plusieurs validateurs personnalisés utilisent le même code de validation, il suffit de créer une seule méthode et de l associer à l événement ServerValidate de tous les validateurs désirés. 46 / 51

Validation Avant d exécuter du code, il peut être souhaitable de vérifier que les données contenues sur une page sont valides. Pour ce faire, il suffit de vérifier si Page.IsValid est vraie. Notez qu en dehors d un événement de validateur personnalisé, cette propriété ne peut être lue qu après avoir appelé explicitement la méthode Page.Validate(). 47 / 51

Validation : côté client Tous les validateurs permettent d effectuer la validation côté client et côté serveur. L avantage principal de la validation côté client est qu il n est pas nécessaire de rafraîchir la page (en complétant un formulaire) pour obtenir la validation. Cependant, la validation côté serveur est cruciale puisqu il est toujours possible pour un utilisateur malicieux de contourner le code exécuté côté client. 48 / 51

Validation : côté client Pour activer (ou désactiver) la validation côté client, il suffit d utiliser la propriété EnableClientScript propre à tous les validateurs. Dans le cas des validateurs non personnalisés, il n est pas nécessaire de coder quoique ce soit puisque tout est généré automatiquement. Il faut cependant écrire le code de validation pour les validateurs personnalisés. 49 / 51

Validation : côté client La validation côté client d un validateur personnalisé doit être spécifiée dans une fonction JavaScript possédant la signature suivante : Syntaxe function FonctionDeValidation(source, args) { // Code ici } Il est toujours possible d obtenir la valeur à valider et d indiquer le résultat grâce à args.value et args.isvalid. 50 / 51

Validation : côté client Le nom de la fonction JavaScript doit être spécifié dans la propriété ClientValidationFunction. La fonction quant à elle doit être spécifiée dans le code HTML grâce à la balise suivante : Syntaxe <script type="text/javascript">... </script> ou via un fichier de script. 51 / 51