2016-03-23 24 views
0

almak için Sitecore'da url yolunu kaplayan ve gerçek url ile eşleşen bir menüm var. IE:Başlık alanı, URL yerine

Ev/Ana/Klasör/bu-is-the-başlık www.website.com/this-is-the-title =

Ne "Başlık" kullanmak olduğunu yapmaya çalışıyorum saha Sitecore'da, başlık özelliğini yerine sayfadaki başlığı görüntülemek için.

HTML

<ItemTemplate> 
    <div class="leftNavImage"> 
     <li> 
     <asp:HyperLink ID="innerHyperLink" runat="server" ></asp:HyperLink> 
     </li> 
    </div> 
</ItemTemplate> 

C#

if (innerItem != null) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     // this creates a link to the page in sitecore once clicked 
     HyperLink topNavigation = (HyperLink)e.Item.FindControl("innerHyperLink"); 
     topNavigation.NavigateUrl = LinkManager.GetItemUrl(innerItem); 
     topNavigation.Text = innerItem.Name; 
    } 
} 

Ben köprü'yü İnbetween ön ucuna ekleyerek çalıştı, ama tüm yaptığım ünvanı alıp yerine sayfası bağlantısının tüm bağlantıları ile çoğaltmak oldu. Ayrıca, Başlığı temsil etmek için arka planda bir değişken ayarlamaya çalıştım ancak işbirliği yapmadı, var title = Sitecore.Context.Item ["Title"] ToString; . Eminim bu basit bir cevaptır ama onu özlüyorum gibi görünüyorum. Tamamen kod arkasında kod kurtulmak istiyorsanız

<ItemTemplate> 
    <div class="leftNavImage"> 
     <li> 
      <asp:HyperLink ID="innerHyperLink" runat="server" > 
       <sc:Text Field="Title" Item="<%# Container.DataItem %>" runat="server" /> 
      </asp:HyperLink> 
     </li> 
    </div> 
</ItemTemplate> 

Eğer asp:HyperLink ile yerini alabilir:

cevap

2
if (innerItem != null) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      // this creates a link to the page in sitecore once clicked 
      HyperLink topNavigation = (HyperLink)e.Item.FindControl("innerHyperLink"); 
      topNavigation.NavigateUrl = LinkManager.GetItemUrl(innerItem); 
      topNavigation.Text = innerItem["Title"]; 

     } 
    } 
+0

shazam ... teşekkürler! Basit – Keith

2

Ayrıca sadece bir sc:Text veya sc:FieldRenderer denetimi kullanın ve tekrarlayıcı Öğe ayarlayabilirsiniz :

<a href="<%# Sitecore.Links.LinkManager.GetItemUrl((Sitecore.Data.Items.Item) Container.DataItem) %>"> 
    <sc:Text Field="Title" Item="<%# Container.DataItem %>" runat="server" /> 
</a> 
+0

olduğunu biliyordum Gelecekte bunu kullanacağım – Keith

İlgili konular