Bölüm 3: Düzen ve Kategori Menüsü

tarafından Joe Stagner

Tailspin Spyworks, .NET platformu için güçlü ve ölçeklenebilir uygulamalar oluşturmanın ne kadar basit olduğunu göstermektedir. Alışveriş, ödeme ve yönetim gibi çevrimiçi bir mağaza oluşturmak için ASP.NET 4'teki harika yeni özelliklerin nasıl kullanılacağını gösterir.

Bu öğretici serisi, Tailspin Spyworks örnek uygulamasını derlemek için atılan tüm adımların ayrıntılarını içerir. 3. bölüm, düzen ve kategori menüsü eklemeyi kapsar.

Bazı Düzen ve Kategori Menüsü Ekleme

Site ana sayfamızda, ürün kategorisi menümüzü içerecek sol taraftaki sütun için bir div ekleyeceğiz.

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

İstenen hizalamanın ve diğer biçimlendirmenin Style.css dosyamıza eklediğimiz CSS sınıfı tarafından sağlandığını unutmayın.

#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%;
}

Ürün kategorisi menüsü, Commerce veritabanının mevcut ürün kategorileri için sorgulanması ve menü öğelerinin ve ilgili bağlantıların oluşturulmasıyla çalışma zamanında dinamik olarak oluşturulur.

Bunu başarmak için iki ASP kullanacağız. NET'in güçlü veri denetimleri. "Varlık Veri Kaynağı" denetimi ve "ListView" denetimi.

Varlık Veri Kaynağı denetimini ve ListView denetimini gösteren ekran görüntüsü.

Şimdi "Tasarım Görünümü"ne geçelim ve denetimlerimizi yapılandırmak için yardımcıları kullanalım.

Tasarım Görünümü'nü gösteren ekran görüntüsü.

EntityDataSource Id özelliğini EDS_Category_Menu olarak ayarlayalım ve "Veri Kaynağını Yapılandır"a tıklayalım.

Veri Kaynağını Yapılandır'a nerede tıklandığını gösteren ekran görüntüsü.

Ticaret Veritabanımız için Varlık Veri Kaynağı Modeli'ni oluştururken bizim için oluşturulan CommerceEntities Connection'ı seçin ve "İleri"ye tıklayın.

İleri'ye nerede tıklandığını gösteren ekran görüntüsü.

"Kategoriler" Varlık kümesi adını seçin ve diğer seçenekleri varsayılan olarak bırakın. "Son"a tıklayın.

Şimdi sayfamıza yerleştirdiğimiz ListView denetim örneğinin ID özelliğini ListView_ProductsMenu olarak ayarlayalım ve yardımcısını etkinleştirelim.

Varlık Veri Kaynağı denetiminin ayarlanacağı yeri gösteren ekran görüntüsü.

Veri öğesi görüntüleme ve biçimlendirmesini biçimlendirmek için denetim seçeneklerini kullanabilsek de, menü oluşturma işlemimiz yalnızca basit işaretleme gerektirdiğinden kodu kaynak görünüme gireceğiz.

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

Lütfen "Değerlendirme" deyimini unutmayın: <%# Eval("CategoryName") %>

%# %> ASP.NET söz dizimi<, çalışma zamanının içinde bulunan her şeyi yürütmesini ve sonuçları "Satırda" olarak çıktısını vermesini sağlayan bir kısaltma kuralıdır.

Eval("CategoryName") deyimi, ilişkili veri öğeleri koleksiyonundaki geçerli girdi için Varlık Modeli öğe adlarının "CategoryName" değerini getirmesini sağlar. Bu, çok güçlü bir özellik için kısa bir söz dizimidir.

Şimdi uygulamayı çalıştıralım.

Çalışan uygulamayı gösteren ekran görüntüsü.

Ürün kategorisi menümüzün artık görüntülendiğini ve kategori menü öğelerinden birinin üzerine geldiğinizde menü öğesi bağlantısının ProductsList.aspx adlı bir sayfayı işaret ettiğini ve kategori kimliğini içeren dinamik bir sorgu dizesi bağımsız değişkeni oluşturduğumuzu görebilirsiniz.