Comment : lier des contrôles Web à un contrôle EntityDataSource
Mise à jour : novembre 2007
Le contrôles serveur Web ListView, FormView, DetailsView et GridView fournissent des fonctionnalités de lecture automatique, d'insertion, de mise à jour et de suppression lorsqu'ils sont utilisés avec un contrôle EntityDataSource. Vous pouvez configurer facilement des éléments HTML sur l'aire de conception de ces contrôles et lier leurs données au contrôle EntityDataSource.
Liaison de contrôles serveur Web à un contrôle EntityDataSource
Les contrôles ListView, FormView, DetailsView et GridView sont très similaires dans leur conception. Liez l'un de ces contrôles serveur Web au contrôle EntityDataSource en suivant ces étapes :
Créez une application Web ASP.NET.
Configurez le projet pour utiliser l'Entity Framework, définissez l'Entity Data Model (EDM) pour le projet et régénérez le projet. Pour plus d'informations, consultez Comment : utiliser l'Assistant Entity Data Model (Entity Framework).
Faites glisser le contrôle sur l'aire de conception de page Web.
Configurez le contrôle EntityDataSource. Pour plus d'informations, consultez Configuration du contrôle EntityDataSource.
Configurez le contrôle pour utiliser le contrôle EntityDataSource.
Remarque : |
---|
À cause d'une limitation dans les concepteurs de contrôles serveur Web relative à la gestion des propriétés de navigation d'un objet d'entité, vous devez modifier manuellement la page code-behind afin de supprimer les crochets des noms de propriétés de navigation dans les modèles d'éléments. |
La procédure suivante crée un contrôle ListView lié à un contrôle EntityDataSource. Pour compléter cette procédure, vous devez avoir configuré l'Entity Framework et avoir défini le modèle de vente AdventureWorks Sales Model. Pour plus d'informations, consultez Comment : utiliser l'Assistant Entity Data Model (Entity Framework).
Pour créer un contrôle ListView lié à un contrôle EntityDataSource :
Générez le projet et le modèle de données.
Faites glisser une instance du contrôle ListView sur l'aire de conception.
Cliquez sur le symbole > sur le contrôle ListView et sélectionnez Choisir la source de données.
Sélectionnez <Nouvelle source de données> dans la liste déroulante.
Lorsque l'Assistant Configuration de source de données apparaît, sélectionnez Entité et spécifiez SalesOrderHeaderDataSource comme nom de la source de données, puis cliquez sur OK.
Sélectionnez AdventureWorksEntities comme la Connexion nommée et le DefaultContainerName, puis cliquez sur Suivant.
Sélectionnez SalesOrderHeader dans la zone de liste déroulante EntitySetName, laissez la case à cocher Sélectionner tout (valeur d'entité) activée, et activez les cases à cocher d'insertion automatique, de mise à jour et de suppression.
Cliquez sur Terminer.
Cela crée une nouvelle instance du contrôle ListView liée à une instance du contrôle EntityDataSource nommée EntityDataSource1.
Dans la page Propriétés de SalesOrderHeaderDataSource, recherchez la propriété Include et ajoutez la chaîne suivante :
Address, Address1, Contact
Cela garantit que pour chaque objet SalesOrderHeader qu'une requête retourne, la requête retournera également les objets Address et Contact connexes. Pour plus d'informations, consultez Définition des chemins d'accès des requêtes (EntityDataSource).
Cliquez sur l'option Configurer ListView dans la zone Tâches ListView.
Activez les cases à cocher Activer la modification, Insertion, Suppression et Pagination .
Cliquez sur OK.
Remarque : À ce stade, l'application doit être en mesure de s'exécuter. Toutefois, les étapes suivantes sont requises à cause d'une limitation des concepteurs de contrôles serveur Web relative à la gestion des propriétés de navigation d'un objet d'entité.
Ouvrez le fichier Default.aspx en mode Source.
Recherchez et supprimez les crochets [ ] autour de toutes les instances de Address.AddressID, Address1.AddressID et Contact.ID. Ces types seront présents dans toutes les occurrences des fonctions Eval et Bind dans ItemTemplate et InsertItemTemplate.
Régénérez le projet et exécutez l'application.
Voir aussi
Concepts
Démarrage rapide d'EntityDataSource, exemple
Vue d'ensemble des contrôles serveur Web liés aux données ASP.NET