2012-07-18 42 views
2

我正在使用Sitecore並使用VS2010(版本4)。我從後面的代碼根據標籤索引用戶添加屬性去:SiteCore鏈接不添加屬性

Link hlTabLink; 
i = e.Item.DataItem as Item; 
hlTabLink = e.Item.FindControl("hlTabLink") as Link; 
hlTabLink.Target = Sitecore.Links.LinkManager.GetItemUrl(i); 
hlTabLink.DataSource = i.Paths.FullPath; 
hlTabLink.Field = "Title"; 
String liContainerId; 
switch (hlTabLink.TabIndex) //Switch case statements for the tab navigation. 
      { 
       case 0: 
        liContainerId = "tab-label TabbedPanelsTabSelected"; 
        hlTabLink.Attributes.Add("class", liContainerId); 
        break; 
       case 1: 
        liContainerId = "tab-label TabbedPanelsTabSelected"; 
        hlTabLink.Attributes.Add("class", liContainerId); 
        break; 
       case 2: 
        liContainerId = "tab-label last"; 
        hlTabLink.Attributes.Add("class", liContainerId); 
        break; 
      } 

這是控制名爲.ascx的標記:

​​

我的標記是這樣看渲染後:

<div class="tab-panels" id="TabbedPanels1"> 
    <ul id="Tab-labels"> 

       <li> 
        Overview 
       </li> 

       <li> 
        Why Me 
       </li> 

    </ul> 

我在這裏做錯了什麼?

+0

它看起來並不像** ** hlTabLink被添加到頁面上的任何地方。另外,你不應該在某個時候實例化它嗎?鏈接hlTabLink =新鏈接()? – Mark 2012-07-18 21:01:07

+0

鏈接是什麼?我第一次看到它。你正在使用哪個asp.net版本? – 2012-07-18 21:03:13

+0

我想任何情況下開關條件都是不正確的。爲什麼不添加默認情況下,然後看看該屬性是否填充? – Chandu 2012-07-18 21:03:24

回答

1

在Sitecore名稱空間中,鏈接是ASP:Hyperlink控件的擴展。使用的CssClass 設置錨標記的屬性:

hlTabLink.CssClass = liContainerId; 
+0

不錯。這可能還會在後備之間持續存在,手動向.Attributes類添加內容不會。 – Bryan 2012-07-19 19:55:46

2

我懷疑你沒有做任何錯事......它只是Sitecore.Web.UI.WebControls.Link對象不打擾你的額外屬性。使用Reflector來查看代碼以確認。

用HyperLink替換Sitecore鏈接對象。看起來你沒有在這裏做任何事情,保證使用標準ASP.NET對象的Sitecore控件。

+0

是的,在聽到案件陳述實際上已經受到打擊之後,我會說這是下一步要做的。 – 2012-07-18 21:09:48

+0

似乎喜歡它。我會出手! – 2012-07-18 21:11:06

0

不知道從什麼

hlTabLink = e.Item.FindControl("hlTabLink") as Link; 

回來很難說究竟發生了什麼,但我猜測,沒有任何case語句被打和,因爲你沒有一個默認的情況下,沒有班正在增加。嘗試添加到您的交換機,看看會發生什麼:

  default: 
        liContainerId = "tab-label TabbedPanelsTabSelected"; 
        hlTabLink.Attributes.Add("class", liContainerId); 
        break; 
+0

開關語句正在打開。我檢查了它。 – 2012-07-18 21:07:59

相關問題