Affichage d'une table de base de données



Documents pareils
Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Construire une application marketing Facebook sur la plateforme Windows Azure

Développement d'une application Web avec ASP.NET MVC

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Module : programmation site Web dynamique Naviguer entre les pages via site map

Tutoriel : Feuille de style externe

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Présentation du Framework BootstrapTwitter

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

Créer un rapport pour Reporting Services

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Utiliser Reporting Services pour des NewsLetter

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZURE

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

BIRT (Business Intelligence and Reporting Tools)

GESTION DES BONS DE COMMANDE

PRESENTATION / FORMATION

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

La réplication sous SQL Server 2005

CREER UN PETIT SITE WEB EN COMPOSANT DES PAGES HTML

TP JAVASCRIPT OMI4 TP5 SRC

1/ Présentation de SQL Server :

< Atelier 1 /> Démarrer une application web

Devenez un véritable développeur web en 3 mois!

Cours Excel : les bases (bases, texte)

Installation locale de JOOMLA SEPIA

Créer une base de données

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Sauvegarde des bases SQL Express

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online

TUTORIEL SIMPLIFIE de QuizFaber Un éditeur de Quiz et autres exercices simple, complet, original et en freeware!

Créer le schéma relationnel d une base de données ACCESS

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

MODE D'EMPLOI DU CONTRIBUTEUR WEB UAPV "CONTRIBUER DANS UNE RUBRIQUE DU SITE WEB"

Conditions d'utilisation de la version gratuite

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

OneDrive, le cloud de Microsoft

Normes techniques 2011

Modélisation et Gestion des bases de données avec mysql workbench

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

AFTEC SIO 2. Christophe BOUTHIER Page 1

Notes pour l utilisation d Expression Web

Éditeur WordPress. Illustration 1. Kerniolen Pluneret Tel : Mob : info@formation-auray.fr

Freeway 7. Nouvelles fonctionnalités

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Utilisation de l'outil «Open Office TEXTE»

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Déploiement d application Silverlight

Gestion des utilisateurs : Active Directory

SUPPORT DE COURS / PHP PARTIE 3

Sage CRM. 7.2 Guide de Portail Client

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Galaxy est une plateforme de traitements (bio)informatiques accessible depuis l'url : (en précisant votre login et mot de passe LDAP «genotoul»).

Gestion du cache dans les applications ASP.NET

Utilisation de l éditeur.

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Initiation à html et à la création d'un site web

Guide pour la réalisation d'un document avec Open Office Writer 2.2

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

EXCEL Les tableaux croisés dynamiques

Utiliser le logiciel CALIBRE pour gérer vos documents et les convertir au format epub

Stellar Phoenix Outlook PST Repair - Technical 5.0 Guide d'installation

Déploiement d'une base SQL Express

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Gérer, stocker et partager vos photos grâce à Picasa. Janvier 2015

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Bac Professionnel Systèmes Electroniques Numériques

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Utiliser Access ou Excel pour gérer vos données

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

Microsoft Application Center Test

Introduction aux outils BI de SQL Server Tutoriel sur SQL Server Integration Services (SSIS)

Tutoriel TYPO3 pour les rédacteurs

OpenOffice.org Présentation - Débuter. Distribué par Le projet OpenOffice.org

Parcours FOAD Formation EXCEL 2010

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server


Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Module ebay pour PrestaShop Guide du vendeur

Votre site Internet avec FrontPage Express en 1 heure chrono

Manuel d utilisation NETexcom

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Corrigé de l'atelier pratique du module 6 : Transfert de données

Bernard Lecomte. Débuter avec HTML

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Exploitation des données issues de BE ( utilisation du tableur CALC) Fiche de travail (individuelle ou en binôme)

Alfresco Guide Utilisateur

Guide de l'utilisateur de Telemarketing. Version 6.0 SP1

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Affichage de la date d'exigibilité sur les documents FAQ INV 011

Didacticiel de mise à jour Web

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

NAS 206 Utiliser le NAS avec Windows Active Directory

Utiliser une base de données

SOMMAIRE. Travailler avec les requêtes... 3

Transcription:

Affichage d'une table de base de données par Philippe Vialatte (Traduction) (ma page DVP) (Blog) Date de publication : 22 Avril 2009 Dernière mise à jour :

Traduction...3 Introduction...3 Créer les classes du modèle...3 Utilisation de LINQ to SQL dans l'action d'un contrôleur...5 Mise en forme dans une vue... 6 Mise en forme dans une vue partielle...8 Résumé... 10-2 -

Traduction Cet article est la traduction la plus fidèle possible de l'article original : Displaying a Table of Database Data Introduction Dans ce tutoriel, je montrerais deux méthodes pour afficher et mettre en forme un ensemble d'enregistrements d'une base de données dans un tableau HTML. Tout d'abord, je montre comment vous pouvez mettre en forme la base de données directement dans une vue. Ensuite, je démontrerais comment vous pouvez profiter des modèles partiels lors du formatage d'enregistrements de base de données. Créer les classes du modèle Nous allons afficher l'ensemble des enregistrements de la table de base de données Movies. La table Movies contient les colonnes suivantes : Nom de la colonne Type des données Permettre les valeurs nulles Id Int Non Title NVarchar(100) Non Director NVarchar(100) Non DateReleased DateTime Non Afin de représenter la table de base de données Movies, nous allons tirer parti de LINQ to SQL en tant que technologie d'accès à notre base de données. En d'autres termes, nous allons construire les classes de notre modèle MVC à l'aide de LINQ to SQL. Le moyen le plus rapide pour créer un ensemble de LINQ to SQL classes est d'utiliser Concepteur Objet/Relationnel de Visual Studio. Faites un clic droit sur le dossier Models, sélectionnez Ajouter, Nouvel élément, sélectionnez, dans données, le modèle Classes Linq To SQL, donner aux classes le nom Movies.dbml, et cliquez sur le bouton Ajouter (voir Figure 1). - 3 -

Figure 01 : Création des classes Linq to SQL Immédiatement après avoir créé les classe LINQ to SQL Movies, l'outil Concepteur Objet/Relationnel apparaît. Vous pouvez faire glisser des tables de la base de données depuis la fenêtre de l'explorateur de serveurs sur le Concepteur Objet/Relationnel pour créer des classes LINQ to SQL qui représentent des tables de base de données spécifiques. Nous avons besoin d'ajouter la table Movies dans le Concepteur Objet/Relationnel (voir Figure 2). - 4 -

Figure 02 : Utilisation du Concepteur Objet/Relationnel Par défaut, le Concepteur Objet/Relationnel va essayer de créer un nom de classe correspondant au nom de la table au singulier. En d'autres termes, si vous avez une de table nommée Customers, le Concepteur Objet/Relationnel va créer une table appelée Customer Le Concepteur Objet/Relationnel est habituellement assez bon pour cela. Malheureusement, le Concepteur Objet/ Relationnel convertit le nom de la table de base de données Movies en Movies (proche, mais faux). Vous pouvez facilement corriger ce problème en double-cliquant sur le nom de la classe dans le Concepteur et en changeant le nom de la classe de Movies en Movie. Enfin, n'oubliez pas de cliquer sur le bouton Enregistrer (l'image de la disquette) pour enregistrer les classes LINQ to SQL. Sinon, les classes LINQ to SQL ne seront pas générées par le Concepteur Objet/Relationnel. Utilisation de LINQ to SQL dans l'action d'un contrôleur Maintenant que nous disposons de nos classes LINQ to SQL, nous pouvons utiliser ces classes pour récupérer des données de la base de données. La classe contrôleur du Listing 1 utilise les classes LINQ to SQL pour récupérer les enregistrements de la table de base de données Movies. Listing 1 - Controllers\HomeController.cs using System.Linq; using System.Web.Mvc; using MvcApplication1.Models; - 5 -

Listing 1 - Controllers\HomeController.cs namespace MvcApplication1.Controllers [HandleError] public class HomeController : Controller public ActionResult Index() var datacontext = new MovieDataContext(); var movies = from m in datacontext.movies select m; return View(movies); L'action Index() du listing 1 utilise la classe MovieDataContext de LINQ to SQL pour récupérer les données de la table Movies de la base de données. La liste des films est passée à la vue Index en tant que valeur de la propriété ViewData.Model. Mise en forme dans une vue La méthode la plus simple, mais pas nécessairement la meilleure, de mise en forme d'un ensemble d'enregistrements de la base de données est d'effectuer la mise en forme directement depuis la vue. Par exemple, la vue Index du Listing 2 effectue le rendu d'un enregistrement dans un tableau HTML. Listing 2 - Views\Home\Index.aspx <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MvcApplication1.Views.Home.Index" %> <%@ Import Namespace="MvcApplication1.Models" %> <asp:content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> <table> <tr> <th>id</th><th>title</th><th>release Date</th> </tr> <% foreach (Movie m in (IEnumerable)ViewData.Model) %> <tr> <td><%= m.id %></td> <td><%= Html.Encode(m.Title) %></td> <td><%= m.datereleased %></td> </tr> <% %> </table> </asp:content> La vue du Listing 2 contient une boucle foreach qui sur chacun des enregistrements du Model de la ViewData. La valeur de chacune des propriétés de l'objet Movie est affichée dans une des cellules du tableau. Les lignes de la table sont créées avec les balises HTML <tr> et les cellules du tableau sont créées avec les balises HTML <td>. Notez que la méthode d'aide Html.Encode() est utilisée pour encoder la valeur de chaque propriété avant que la valeur ne soit affichée. Chaque fois que vous acceptez des données de la part de vos utilisateurs, et que vous réaffichez ces données dans une page web, il est important d'encoder les valeurs pour prévenir les attaques par injection JavaScript. Des hackers peuvent commettre de mauvaises actions, comme le vol de données personnelles des utilisateurs de votre site Web, lorsque vous ne faites pas attention à l'encodage du contenu HTML avant son affichage. Lorsque vous exécutez l'application, la vue Index rend la page de la Figure 3. - 6 -

Figure 03: Base de données de documents au format HTML avec un tableau La mise en forme du tableau HTML de la figure 3 n'est pas très excitante. Nous pouvons améliorer l'apparence du tableau HTML par la création d'une feuille de style css. Comme la vue du Listing 2 est une vue de contenu, nous devons ajouter la feuille de style à la page maître associée à la vue. Cette page maître est située dans le chemin suivant : \Views\Shared\Site.master Afin d'améliorer l'apparence du tableau HTML, nous pouvons ajouter la feuille de style du Listing 3 entre l'ouverture et la clôture des balises <head> de la page maître. Listing 3 - Feuille de style <style type="text/css"> table border-collapse:collapse; table td, table th - 7 -

Listing 3 - Feuille de style border: solid 1px black; padding:10px; </style> La feuille de style dans le Listing 3 permet que les bordures du tableau coïncident et ajoute un quadrillage. Après avoir ajouté cette feuille de style à la page maître, la vue Index produit le rendu de la figure 4. Mise en forme dans une vue partielle Figure 04 : tableau HTML avec style Au lieu d'effectuer toutes les mises en forme directement dans la vue, vous pouvez utiliser une vue partielle comme modèle pour chaque enregistrement de la base de données. Par exemple, la vue partielle du Listing 4 représente la mise en forme pour un enregistrement de la table Movie. Listing 4 - \Views\Movies\MovieTemplate.ascx <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MovieTemplate.ascx.cs" Inherits="MvcApplication1.Views.Movies.MovieTemplate" %> <tr> <td> <%=ViewData.Model.Id%></td> <td> <%=Html.Encode(ViewData.Model.Title)%></td> <td> <%=ViewData.Model.DateReleased.ToString("D")%></td> </tr> Le Template du listing 4 met en forme chaque enregistrement sous la forme d'une rangée d'un tableau HTML. Ce modèle de mise en forme est appliqué à chaque enregistrement. Notez que la propriété ViewData.Model, dans la vue partielle, représente un enregsitrement de base de données unique au lieu de l'ensemble des enregistrements transmis. Afin de convertir la propriété ViewData.Model en une instance de la classe Movie, vous avez besoin de créer une classe code-behind pour la vue partielle. La classe du Listing 5 précise que la classe partielle MovieTemplate hérite d'une classe générique qui a le type Movie comme type de paramètre. - 8 -

Listing 5 - \Views\Movies\MovieTemplate.ascx.cs using MvcApplication1.Models; namespace MvcApplication1.Views.Movies public partial class MovieTemplate : System.Web.Mvc.ViewUserControl<Movie> La classe MovieTemplate hérite de la classe ViewUserControl<Movie>. Comme la classe MovieTemplate hérite de cette classe, la propriété ViewData.Model est automatiquement convertie (castée) en Movie. La vue Index du Listing 6 montre comment vous pouvez utiliser la classe partielle MovieTemplate dans une vue. La méthode Html.RenderPartial() est utilisée pour faire un rendu de la classe partielle MovieTemplate. Listing 6 - \Views\Movies\Index.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MvcApplication1.Views.Movies.Index" %> <%@ Import Namespace="MvcApplication1.Models" %> <asp:content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> <table> <tr> <th>id</th><th>title</th><th>release Date</th> </tr> <% foreach (Movie m in (IEnumerable)ViewData.Model) Html.RenderPartial("MovieTemplate", m); %> </table> </asp:content> Dans le Listing 6, la méthode Html.RenderPartial() est utilisée pour rendre faire le rendu de la classe partielle MovieTemplate pour chaque enregistrement. Deux paramètres sont passés à la méthode RenderPartial(). Le premier paramètre est le nom de la classe partielle à rendre. Tout comme les vues, une vue partielle doit, par défaut, être situé dans le dossier Views\ControllerName ou dans le dossier Views\Shared folder. Le deuxième paramètre spécifie les données de vue transmises à la classe partielle. Dans la classe partielle, la propriété ViewData.Model représente un enregistrement de Movie. Un avertissement important. La méthode Html.RenderPartial(), contrairement à la plupart des autres méthodes d'aide (helper methods), ne renvoie pas une chaîne de caractères. Cela signifie que vous ne devez pas appeler la méthode RenderPartial() : <%= Html.RenderPartial("MovieTemplate", m) %> Au lieu de cela, vous devrez appeler la méthode comme ceci : <% Html.RenderPartial("MovieTemplate", m); %> La méthode RenderPartial() fait quelque chose, elle ne renvoie pas quelque chose. - 9 -

Résumé Le but de ce tutoriel était de montrer comment vous pouvez afficher une série d'enregistrements de base de données dans un tableau HTML. Nous avons exploré deux méthodes pour le formatage des enregistrements. Tout d'abord, nous avons mis en forme les données directement dans la vue. Ensuite, nous avons utilisé une vue partie comme modèle pour chaque enregistrement de base de données. - 10 -