Partager via


Partie 3 : Mise en page et menu Catégorie

par Joe Stagner

Tailspin Spyworks montre à quel point il est extrêmement simple de créer des applications puissantes et évolutives pour la plateforme .NET. Il montre comment utiliser les nouvelles fonctionnalités de ASP.NET 4 pour créer un magasin en ligne, y compris les achats, les caisses et l’administration.

Cette série de tutoriels détaille toutes les étapes à suivre pour générer l’exemple d’application Tailspin Spyworks. La partie 3 traite de l’ajout d’une disposition et d’un menu de catégorie.

Ajout d’une disposition et d’un menu Catégorie

Dans notre page de master de site, nous allons ajouter un div pour la colonne de gauche qui contiendra notre menu de catégorie de produits.

<div id="content">
  <div id="rightColumn"></div>
  <div id="mainContent">
    <div id="centerColumn">
       <asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder>
    </div>
  </div>
  <div id="leftColumn">
<!-- Our menu will go here -->       
  </div>
  <div class="clear"></div>
</div>

Notez que l’alignement souhaité et d’autres mises en forme seront fournis par la classe CSS que nous avons ajoutée à notre fichier Style.css.

#leftColumn
{
position: relative;float: left;width: 14em;padding: 2em 1.5em 2em;background: #fff url('images/a1.gif') repeat-y right top;
        top: 1px;
        left: 0px;
        height: 100%;
}

Le menu de catégorie de produit est créé dynamiquement au moment de l’exécution en interrogeant la base de données Commerce pour les catégories de produits existantes et en créant les éléments de menu et les liens correspondants.

Pour ce faire, nous allons utiliser deux d’ASP. Contrôles de données puissants de NET. Contrôle « Source de données d’entité » et contrôle « ListView ».

Capture d’écran montrant le contrôle Entity Data Source et le contrôle ListView.

Basculons vers « Mode Création » et utilisons les helpers pour configurer nos contrôles.

Capture d’écran montrant le mode Création.

Nous allons définir la propriété EntityDataSource ID sur EDS_Category_Menu et cliquer sur « Configurer la source de données ».

Capture d’écran montrant où cliquer sur Configurer la source de données.

Sélectionnez la connexion CommerceEntities qui a été créée pour nous lorsque nous avons créé le modèle de source de données d’entité pour notre base de données commerce, puis cliquez sur « Suivant ».

Capture d’écran montrant où cliquer sur Suivant.

Sélectionnez le nom du jeu d’entités « Catégories » et laissez le reste des options par défaut. Cliquez sur « Terminer ».

Nous allons maintenant définir la propriété ID du contrôle ListView instance que nous avons placé sur notre page pour ListView_ProductsMenu et activer son assistance.

Capture d’écran montrant où définir le contrôle Source de données d’entité.

Bien que nous puissions utiliser des options de contrôle pour mettre en forme l’affichage et la mise en forme de l’élément de données, la création de notre menu nécessite uniquement un balisage simple. Nous allons donc entrer le code dans la vue source.

<asp:ListView ID="ListView_ProductsMenu" runat="server" DataKeyNames="CategoryID" 	DataSourceID="EDS_Category_Menu">
   <EmptyDataTemplate>No Menu Items.</EmptyDataTemplate>
   <ItemSeparatorTemplate></ItemSeparatorTemplate>
   <ItemTemplate>
      <li>
         <a href='<%# VirtualPathUtility.ToAbsolute("~/ProductsList.aspx?CategoryId=" + 
                                Eval("CategoryID")) %>'><%# Eval("CategoryName") %></a>
      </li>
   </ItemTemplate>               
   <LayoutTemplate>
      <ul ID="itemPlaceholderContainer" runat="server">
         <li runat="server" id="itemPlaceholder" />
      </ul>
      <div>
      </div>
   </LayoutTemplate>

Notez l’instruction « Eval » : <%# Eval(« CategoryName ») %>

La syntaxe <ASP.NET %# %> est une convention abrégée qui indique au runtime d’exécuter tout ce qui est contenu dans et de générer les résultats « in Line ».

L’instruction Eval(« CategoryName ») indique que, pour l’entrée actuelle dans la collection liée d’éléments de données, récupérez la valeur des noms d’éléments du modèle d’entité « CategoryName ». Il s’agit d’une syntaxe concise pour une fonctionnalité très puissante.

Nous allons exécuter l’application maintenant.

Capture d’écran montrant l’application en cours d’exécution.

Notez que notre menu de catégorie de produit s’affiche désormais et que lorsque nous pointons sur l’un des éléments de menu de catégorie, nous pouvons voir le lien de l’élément de menu pointer vers une page que nous n’avons pas encore implémentée nommée ProductsList.aspx et que nous avons créé un argument de chaîne de requête dynamique qui contient l’ID de catégorie.