Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
par Tom FitzMacken
Cette série de tutoriels illustre les aspects de base de l’utilisation de la liaison de modèle avec un projet web Forms ASP.NET. La liaison de modèle rend l’interaction des données plus simple que la gestion des objets de source de données (par exemple, ObjectDataSource ou SqlDataSource). Cette série commence par le matériel d’introduction et passe à des concepts plus avancés dans les didacticiels ultérieurs.
Ce tutoriel montre comment transmettre une valeur dans la chaîne de requête et utiliser cette valeur pour récupérer des données via la liaison de modèle.
Ce didacticiel s’appuie sur le projet créé dans les parties antérieures de la série.
Vous pouvez télécharger le projet complet en C# ou VB. Le code téléchargeable fonctionne avec Visual Studio 2012 ou Visual Studio 2013. Il utilise le modèle Visual Studio 2012, légèrement différent du modèle Visual Studio 2013 présenté dans ce tutoriel.
Ce que vous allez construire
Dans ce didacticiel, vous allez :
- Ajouter une nouvelle page pour afficher les cours inscrits pour un étudiant
- Récupérer les cours inscrits pour l’étudiant sélectionné en fonction d’une valeur dans la chaîne de requête
- Ajouter un lien hypertexte avec un paramètre de requête depuis la vue grille vers la nouvelle page
Les étapes décrites dans ce tutoriel sont assez similaires à celles que vous avez faites dans le didacticiel précédent pour filtrer les étudiants affichés en fonction de la sélection de l’utilisateur dans une liste déroulante. Dans ce tutoriel, vous avez utilisé l’attribut Control dans la méthode select pour spécifier que la valeur du paramètre provient d’un contrôle. Dans ce tutoriel, vous allez utiliser l’attribut QueryString dans la méthode select pour spécifier que la valeur du paramètre provient de la chaîne de requête.
Ajouter une nouvelle page pour afficher les cours d’un étudiant
Ajoutez un nouveau formulaire web qui utilise la page maître Site.master et nommez la page Courses.
Dans le fichier Courses.aspx , ajoutez une vue grille pour afficher les cours de l’étudiant sélectionné.
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView runat="server" ID="coursesGrid"
ItemType="ContosoUniversityModelBinding.Models.Enrollment"
SelectMethod="coursesGrid_GetData" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Title" DataField="Course.Title" />
<asp:BoundField HeaderText="Credits" DataField="Course.Credits" />
<asp:BoundField HeaderText="Grade" DataField="Grade" />
</Columns>
<EmptyDataTemplate>
<asp:Label Text="No Enrolled Courses" runat="server" />
</EmptyDataTemplate>
</asp:GridView>
</asp:Content>
Définir la méthode sélection
Dans Courses.aspx.cs, vous allez ajouter la méthode select avec le nom que vous avez spécifié dans la propriété SelectMethod de la vue grille. Dans cette méthode, vous allez définir la requête pour récupérer les cours d’un étudiant et spécifier que le paramètre provient d’une valeur de chaîne de requête portant le même nom que le paramètre.
Tout d’abord, vous devez ajouter les instructions using suivantes.
using ContosoUniversityModelBinding.Models;
using System.Web.ModelBinding;
using System.Data.Entity;
Ajoutez ensuite le code suivant à Courses.aspx.cs :
public IQueryable<Enrollment> coursesGrid_GetData([QueryString] int? studentID)
{
SchoolContext db = new SchoolContext();
var query = db.Enrollments.Include(e => e.Course)
.Where(e => e.StudentID == studentID);
return query;
}
L’attribut QueryString signifie qu’une valeur de chaîne de requête nommée StudentID est automatiquement affectée au paramètre de cette méthode.
Ajouter un lien hypertexte avec une valeur de chaîne de requête
Dans l’affichage grille de Students.aspx, vous allez ajouter un champ de lien hypertexte qui est lié à votre nouvelle page Cours. Le lien hypertexte inclut une valeur de chaîne de requête avec l’ID de l’étudiant.
Dans Students.aspx, ajoutez le champ suivant aux colonnes de la vue en grille, juste en dessous du champ pour les Crédits totaux.
<asp:TemplateField HeaderText="Total Credits">
<ItemTemplate>
<asp:Label Text="<%# Item.Enrollments.Sum(en => en.Course.Credits) %>"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField Text="Courses" DataNavigateUrlFormatString="~/Courses.aspx?StudentID={0}"
DataNavigateUrlFields="StudentID" />
Exécutez l’application et notez que la vue de grille inclut désormais le lien Cours.
Lorsque vous cliquez sur l’un des liens, vous verrez que les cours inscrits de l’étudiant s’affichent.
Conclusion
Dans ce tutoriel, vous avez ajouté un lien avec une valeur de chaîne de requête. Vous avez utilisé cette valeur de chaîne de requête pour la valeur du paramètre dans la méthode select.
Dans le tutoriel suivant, vous allez déplacer le code des fichiers code-behind vers une couche logique métier et une couche d’accès aux données.