Udostępnij za pośrednictwem


Część 3. Układ i menu kategorii

Autor: Joe Stagner

Tailspin Spyworks pokazuje, jak niezwykle proste jest tworzenie zaawansowanych, skalowalnych aplikacji dla platformy .NET. Pokazuje, jak używać wspaniałych nowych funkcji w ASP.NET 4 do tworzenia sklepu internetowego, w tym zakupów, wyewidencjonowania i administracji.

W tej serii samouczków szczegółowo opisano wszystkie kroki podjęte w celu utworzenia przykładowej aplikacji Tailspin Spyworks. Część 3 obejmuje dodawanie układu i menu kategorii.

Dodawanie niektórych układów i menu kategorii

Na naszej stronie wzorcowej witryny dodamy div dla lewej kolumny bocznej, która będzie zawierać menu kategorii produktów.

<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>

Należy pamiętać, że żądane wyrównanie i inne formatowanie zostanie udostępnione przez klasę CSS dodaną do pliku 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%;
}

Menu kategorii produktów zostanie dynamicznie utworzone w czasie wykonywania, wysyłając zapytanie do bazy danych Commerce dla istniejących kategorii produktów i tworząc elementy menu i odpowiednie linki.

W tym celu użyjemy dwóch platform ASP. Zaawansowane kontrolki danych platformy NET. Kontrolka "Źródło danych jednostki" i kontrolka "ListView".

Zrzut ekranu przedstawiający kontrolkę Źródło danych jednostki i kontrolkę ListView.

Przejdźmy do pozycji "Widok projektu" i użyjmy pomocników, aby skonfigurować nasze kontrolki.

Zrzut ekranu przedstawiający widok projektu.

Ustawmy właściwość EntityDataSource ID na EDS_Category_Menu i kliknij pozycję "Konfiguruj źródło danych".

Zrzut ekranu pokazujący, gdzie kliknąć pozycję Konfiguruj źródło danych.

Wybierz połączenie CommerceEntities utworzone dla nas podczas tworzenia modelu źródła danych jednostki dla naszej bazy danych handlowych i kliknij przycisk "Dalej".

Zrzut ekranu pokazujący, gdzie kliknąć przycisk Dalej.

Wybierz nazwę zestawu jednostek "Kategorie" i pozostaw resztę opcji jako domyślną. Kliknij przycisk Zakończ.

Teraz ustawmy właściwość ID wystąpienia kontrolki ListView, które umieściliśmy na naszej stronie, aby ListView_ProductsMenu i aktywować jego pomocnik.

Zrzut ekranu pokazujący, gdzie ustawić kontrolkę Źródła danych jednostki.

Chociaż możemy użyć opcji sterowania do formatowania wyświetlania i formatowania elementu danych, tworzenie menu będzie wymagać tylko prostego znaczników, więc wprowadzimy kod w widoku źródłowym.

<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>

Zwróć uwagę na instrukcję "Eval": <%# Eval("CategoryName") %>

Składnia <ASP.NET %# %> jest konwencją skróconą, która nakazuje środowisku uruchomieniowemu wykonanie dowolnego elementu zawartego w elemencie i wyprowadzenie wyników "w wierszu".

Instrukcja Eval("CategoryName") informuje, że dla bieżącego wpisu w powiązanej kolekcji elementów danych pobierz wartość nazw elementów modelu jednostki "CategoryName". Jest to zwięzła składnia dla bardzo zaawansowanej funkcji.

Uruchomimy teraz aplikację.

Zrzut ekranu przedstawiający uruchomioną aplikację.

Zwróć uwagę, że menu kategorii produktów jest teraz wyświetlane, a po umieszczeniu wskaźnika myszy na jednym z elementów menu kategorii możemy zobaczyć link elementu menu do strony, którą jeszcze zaimplementowaliśmy o nazwie ProductsList.aspx i że utworzyliśmy dynamiczny argument ciągu zapytania zawierający identyfikator kategorii.