Les grandes lignes de la programmation en ASP.NET 2.0


précédentsommairesuivant

VII. Les bases de données

Nous n'allons pas ici reprendre les principes du modèle ADO.NET. Il existe assez de cours et tutoriels sur developpez.com pour s'initier à cet outil. Je vous invite à parcourir la partie ".NET et les bases de données" de la page cours du forum DotNet. Rappelons juste ce qui concerne ce cours : ADO.NET permet 2 modes de connexion, le mode connecté via des objets DataReader (forward-only) et le mode déconnecté via des objets DataSet. Pour les anciens utilisateurs des technologies Microsoft, le DataSet est le remplaçant du RecordSet de l'ancien modèle ADO. Il ne faut pas pousser la comparaison plus loin car le DataSet est bien plus puissant et peut comporter des tables, des vues et des relations ce qui était impossible avec un RecordSet.

Au niveau de la conception et de l'exploitation des bases de données, le principe de développement ne change pas en faisant de l'ASP.NET, il faut toujours une connexion, des commandes et des requêtes. Le point le plus délicat en programmant pour le web est l'endroit où il faut se connecter, la persistance de la connexion ainsi que la persistances des données. Suivant le type d'application à déployer, la structure d'accès peut se voir modifiée mais ceci fait partie d'un cours bien plus avancé.

Voyons comment accéder à une base de données en ASP.NET 2.0 et comment utiliser les différents contrôles liés aux données.

a. Repeater

Le contrôle Repeater affiche le contenu d'une liste sur base d'un modèle (template) mais ne permet pas l'édition de ces données.

b. DataList

Le contrôle DataList implémente déjà une mise en forme qu'il suffit de compléter. Par contre, il manque de souplesse lorsque l'on désire "jouer" sur deux ou trois lignes.
Il permet également l'édition de données s'il est lié à une DataTable.

On définit le modèle (template) du Repeater et de la DataList pour chaque ligne de données grâce à une balise HTML : ItemTemplate.

D'autres "templates" peuvent être utilisés en complément :

  • AlternatingItemTemplate : s'utilise pour définir l'affichage des lignes paires de la liste. Dans ce cas, ItemTemplate n'est plus valide que pour les lignes impaires.
  • HeaderTemplate : concerne l'entête de liste et est donc utilisé avant l'affichage de la liste
  • FooterTemplate : concerne le pied de liste et est donc utilisé après l'affichage de la liste
  • SeparatorTemplate : désigne l'aspect du séparateur de lignes

Dans le cas d'une DataList, vous avez aussi la possibilité d'utiliser :

  • SelectedItemTemplate : permet de donner un affichage différent à la ligne sélectionnée
  • EditItemTemplate : s'applique aux lignes en cours d'édition

c. DataGrid/GridView

Contrairement aux deux contrôles précédents, le DataGrid n'est pas basé sur des modèles mais possède ses propres propriétés de mise en forme assez semblables à celles connues en développement WinForms.
Malgré tout, l'environnement Web impose d'autres attributs notamment pour gérer la pagination : AllowPaging, PageSize, OnPageIndexChange, ...

La pagination permet d'éviter, entre autres, de passer la totalité des données de la source à une page.

Dans le framework 2.0, le DataGrid est "remplacé" par le GridView. Bien des choses complexes sont facilitées avec ce nouveau composant.
Malgré tout, le DataGrid est toujours disponible pour les inconditionnels !
Bien que le DataGrid puisse aussi supporter ces mises en forme, le GridView en facilite l'implémentation directement dans ses propriétés :

  • possibilité de tris sur les colonnes
  • interraction avec l'utilisateur : modification, suppression des données
  • possibilité d'ajouter des colonnes indépendantes des données (boutons, lien, case à cocher ou templateField)

d. DetailsView

Comme le GridView, il affiche des données dans une grille, mais une ligne à la fois. Il peut être interressant de combiner les 2.
Par exemple, un GridView qui affiche la liste des employés et un DetailsView en dessous qui affiche la fiche descriptive de l'employé selectionné dans le GridView. Tout cela en DataBinding bien sûr !


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Cécile Muno. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.