2016-03-23 3 views
0

Ich habe ein Menü, das den Pfad der URL in Sitecore ergreift und es mit der tatsächlichen URL abgleicht. IE:Wie man das Titelfeld anstelle der URL ergreift

Home/Main/Ordner/this-is-the-title = www.website.com/this-is-the-title

Was ich versuche, das Feld "Titel" zu tun ist, zu verwenden in Sitecore, um den Titel auf der Seite anstelle der Pfadeigenschaft anzuzeigen.

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

habe ich versucht, dazwischen den Hyperlink zum vorderen Ende hinzufügen, aber alle die Titel taten, waren zu nehmen und mit allen Links statt Seite Link zu replizieren. Außerdem habe ich versucht, eine Variable im Backend zu setzen, um den Titel darzustellen, aber es hat nicht kooperiert, var title = Sitecore.Context.Item ["Title"]. ToString; . Ich bin sicher, es ist eine einfache Antwort, aber ich vermisse es.

Antwort

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 ... danke! Wusste, es war einfach – Keith

2

Sie könnten auch nur eine sc:Text oder sc:FieldRenderer Steuerung verwenden und den Artikel in Ihrem Repeater gesetzt:

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

Wenn Sie vollständig von der Code-behind-Code wollen, um loszuwerden, könnten Sie die asp:HyperLink ersetzen :

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

Ich werde dies in der Zukunft dank nutzen – Keith

Verwandte Themen