2012-05-22 1 views
0

Может ли кто-нибудь сказать мне, могу ли я использовать ASP Control вместо полевого рендерера, чтобы отобразить это поле. См. Рисунок ниже. Примечание: Мне нужно сделать это в событии детализации ретранслятора.Sitecore Доступ к значению поля для ASP управления

У меня есть шаблон с полем как внешняя ссылка .Eg: Свяжитесь с нами. Один из способов отображения этой ссылки на странице использует средство визуализации полей, как показано ниже.

ContactUS.aspx:

<asp:Repeater ID="rptContactUS" runat="server" OnItemDataBound="Menu_OnItemDataBound"> 
     <ItemTemplate> 
      <item><sc:FieldRenderer ID="frContactUS" runat="server"/></item>           
     </ItemTemplate>  
</asp:Repeater> 

ContactUS.aspx.cs:

protected void Menu_OnItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     Field item = (Field)e.Item.DataItem; 
     if (item != null) 
     { 
      FieldRenderer frContactUS= (FieldRenderer)e.Item.FindControl("frContactUS"); 
      if (frContactUS!= null) 
      { 
       frContactUS.FieldName = item.Name; 
      } 
     }  
    } 

Приведенный выше код работает fine.My вопрос, может ли я использовать контроль Asp вместо FieldRenderer и назначить link из поля Item to asp href свойство ссылки в событии события привязки репитера. Если да, скажите, пожалуйста, как?

Спасибо, Suhas

ответ

0

Да вы можете. Из того, что я вижу в вашем примере, вы привязываете поле к меню. Вы также можете привязать список элементов к своему меню. Вы можете получить поля этого пункта в ретранслятором, как это:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      Item dataItem = (Item)e.Item.DataItem; 
        System.Web.UI.WebControls.HyperLink hl = (System.Web.UI.WebControls.HyperLink)e.Item.FindControl("hl"); 

        if (hl != null) 
        { 
        Sitecore.Data.Fields.LinkField url = dataItem.Fields["linkfield"]; 

        if (url != null) 
        { 
         hlMerk.NavigateUrl = url.Url; 
         hlMerk.Target = url.Target; 
         // more properties are available check sitecore documentation 
        }      
       } 
      } 

}

Здесь вы будете иметь поле URL (очевидно, вы должны дать правильное имя поля вместо URL LinkField имеет. несколько свойств, описанных в общей документации Sitecore, которые можно найти @http://sdn.sitecore.net.

+0

спасибо younes :) – Suhas

+0

Добро пожаловать! – Younes

Смежные вопросы