Vue d'ensemble du contrôle serveur Web DetailsView

Mise à jour : novembre 2007

Le contrôle DetailsView affiche les valeurs d'un enregistrement unique d'une source de données dans un tableau, où chaque ligne de données représente un champ de l'enregistrement. Il est souvent utilisé en association avec un contrôle GridView pour les scénarios maîtres/détails.

Cette rubrique contient les sections suivantes :

  • Contexte

  • Exemples de code

  • Référence de classe

Contexte

Le contrôle DetailsView vous permet à la fois d'afficher, de modifier, d'insérer ou de supprimer un enregistrement unique de sa source de données associée. Par défaut, le contrôle DetailsView affiche chaque champ d'un enregistrement sur une ligne distincte. Le contrôle DetailsView est généralement utilisé pour la mise à jour et l'insertion de nouveaux enregistrements et souvent dans un scénario maître/détail où l'enregistrement sélectionné du contrôle principal détermine l'enregistrement à afficher dans le contrôle DetailsView. Le contrôle DetailsView n'affiche qu'un seul enregistrement de données à la fois, même si sa source de données en affiche plusieurs.

Le contrôle DetailsView dépend des fonctionnalités du contrôle de source de données pour l'exécution de tâches telles que la mise à jour, l'insertion et la suppression d'enregistrements. Le contrôle DetailsView ne prend pas en charge le tri.

Le contrôle DetailsView peut paginer automatiquement sur les données dans sa source de données associée, pourvu que les données soient représentées par un objet qui prend en charge l'interface ICollection ou que la source de données sous-jacente prend en charge la pagination. Le contrôle DetailsView fournit l'interface utilisateur pour qui permet de naviguer entre les enregistrements. Pour activer le comportement de la pagination, affectez la valeur true à la propriété AllowPaging.

Vous sélectionnez un enregistrement donné dans la source de données associée en effectuant une pagination sur cet enregistrement. L'enregistrement affiché par le contrôle DetailsView est celui actuellement sélectionné.

Liaison de données avec le contrôle DetailsView

Le contrôle DetailsView fournit les options de liaison de données ci-dessous :

  • Liaison de données à l'aide de la propriété DataSourceID, qui vous permet de lier le contrôle DetailsView à un contrôle de source de données. Ceci est l'approche recommandée, car il permet au contrôle DetailsView de profiter des fonctionnalités du contrôle de source de données et de fournir une fonctionnalité intégrée de mise à jour et de pagination.

  • Liaison de données à l'aide de la propriété DataSource, qui vous permet de créer des liaisons à divers objets, notamment des groupes de données ADO.NET et des lecteurs de données. Cette approche nécessite de votre part l'écriture du code de toutes les fonctionnalités supplémentaires telles que la mise à jour et la pagination.

Lorsque vous créez une liaison à une source de données à l'aide de la propriété DataSourceID, le contrôle DetailsView prend en charge la liaison de données bidirectionnelle. Outre l'affichage de données par le contrôle, vous pouvez activer celui-ci afin qu'il prenne en charge automatiquement les opérations d'insertion, de mise à jour et de suppression de données liées.

Utilisation des données du contrôle DetailsView

Le contrôle DetailsView est lié à un contrôle de source de données qui, à son tour, gère les tâches de connexion à un magasin de données et de retour des données sélectionnées. La liaison du contrôle DetailsView aux données est aussi simple que la définition de la propriété DataSourceID de façon déclarative. Vous pouvez également effectuer la liaison à une source de données de code.

Pour activer la modification, affectez la valeur true à la propriété AutoGenerateEditButton. Le contrôle DetailsView affiche ensuite un bouton Modifier en plus des champs de données. Lorsque vous cliquez sur le bouton Modifier, le contrôle DetailsView passe en mode édition. Dans ce mode, la propriété CurrentMode du contrôle DetailsView passe de ReadOnly à Edit et chaque champ du contrôle affiche son interface utilisateur de modification sous forme de zone de texte ou de case à cocher. Vous pouvez également personnaliser l'interface utilisateur de modification à l'aide de styles, d'objets DataControlField et de modèles.

Remarque :

Pour que le contrôle DetailsView prenne en charge la modification, la source de données liée doit prendre en charge les opérations de mise à jour des données.

Vous pouvez configurer le contrôle DetailsView pour qu'il affiche les boutons Supprimer et Insérer afin que vous puissiez supprimer l'enregistrement de données correspondant de la source de données ou insérer un nouvel enregistrement de données. À l'instar de la propriété AutoGenerateEditButton, lorsque la propriété AutoGenerateInsertButton a la valeur true sur le contrôle DetailsView, elle affiche un bouton Nouveau. Lorsque vous cliquez sur le bouton Nouveau, la propriété CurrentMode du contrôle DetailsView devient Insert. Le contrôle DetailsView affiche les contrôles d'entrée UI appropriés pour chaque champ lié, à moins que la propriété InsertVisible du champ lié n'ait la valeur false.

Personnalisation de l'interface utilisateur du contrôle DetailsView

Le contrôle DetailsView prend en charge une propriété de collection Fields qui contient les objets DataControlField de type BoundFieldCommandFieldou HyperLinkField. Son fonctionnement est semblable à la collection Columns du contrôle GridView, mais le contrôle DetailsView affiche chaque champ comme une ligne et non comme une colonne.

À l'instar du contrôle GridView, vous pouvez personnaliser l'interface utilisateur du contrôle DetailsView à l'aide de propriétés de style telles que HeaderStyle, RowStyle, AlternatingRowStyle, CommandRowStyle, FooterStyle, PagerStyle et les propriétés EmptyDataRowStyle.

Le contrôle DetailsView vous offre une personnalisation supplémentaire via les modèles qui vous donnent plus de contrôle sur l'affichage de certains éléments. Vous pouvez définir vos propres propriétés EmptyDataTemplate, HeaderTemplate, FooterTemplate et PagerTemplate pour le contrôle DetailsView. Vous pouvez également créer un modèle pour un champ en ajoutant un objet TemplateField à la collection Fields.

Le contrôle DetailsView affiche plusieurs événements que vous pouvez gérer pour exécuter votre propre code. Les événements sont déclenchés avant et après les opérations d'insertion, de mise à jour et de suppression du contrôle de source de données associé. Vous pouvez également écrire des gestionnaires pour les événements ItemCreated et ItemCommand. Pour plus d'informations, consultez Événements du contrôle serveur Web DetailsView.

Remarque :

Le modèle d'événement du contrôle DetailsView est similaire à celui du contrôle GridView. Toutefois, le contrôle DetailsView ne prend pas en charge les événements de sélection, car l'enregistrement actuel représente toujours l'élément sélectionné.

Retour au début

Exemples de code

Procédure pas à pas : modification et insertion de données dans les pages Web avec le contrôle serveur Web DetailsView

Procédure pas à pas : récupération, mise à jour, insertion et suppression de données avec les contrôles LinqDataSource et DetailsView

Pagination dans un contrôle serveur Web DetailsView

Modification des données à l'aide d'un contrôle serveur Web DetailsView

Création d'une ligne personnalisée dans un contrôle serveur Web DetailsView

Retour au début

Référence de classe

Le tableau suivant répertorie les classes clés relatives au contrôle DetailsView.

Membre

Description

DetailsView

Classe principale du contrôle.

Retour au début

Voir aussi

Concepts

Événements du contrôle serveur Web DetailsView

Vue d'ensemble de l'accès aux données ASP.NET

Modèles de contrôles serveur Web ASP.NET

Référence

Vue d'ensemble du contrôle serveur Web GridView

Autres ressources

Accès aux données avec ASP.NET