2012-06-26 32 views
0

我一直在試圖找到一種方式來設計asp.menu控件的樣式。許多在線示例沒有幫助,因爲設置樣式的屬性不起作用(即StaticMenuItemStyle-CssClass =「SOMECLASS」)。所以我希望有一種方法來編程?請幫忙。如何在MenuItemDataBound的MenuItem上設置CSS

protected void Menu_MenuItemDataBound(object sender, MenuEventArgs e) 
{ 
    if (e.Item.NavigateUrl.Trim() == _currentUrl.Trim()) 
    { 
     // Something like this 
     e.Item.CssClass = "SOMECLASS"; 
    } 
} 

編輯 我做了一個變通爲我的網站導航。如果有一種方法可以使用ASP.NET菜單樣式屬性,請告訴我!

protected void Menu_MenuItemDataBound(object sender, MenuEventArgs e) 
{ 
    MenuItem menuitem = (MenuItem)e.Item; 
    if (menuitem.NavigateUrl.Trim() == _currentUrl.Trim()) 
    { 
     if (menuitem.Depth == 1) 
     { 
      menuitem.Text = "<span class=\"active" + menuitem.Depth + " selectedlevel1\">" + menuitem.Text + "</span>"; 
     } 
     else 
     { 
      menuitem.Text = "<span class=\"active" + menuitem.Depth + " selectedlevel2\">" + menuitem.Text + "</span>"; 
     } 
     while (menuitem.Parent != null) 
     { 
      menuitem = menuitem.Parent; 
      String title = menuitem.Text; 
      title = title.Replace("<span>", ""); 
      title = title.Replace("</span>", ""); 
      menuitem.Text = "<span class=\"active" + menuitem.Depth + "\">" + title + "</span>"; 
     } 
    } 
    else 
    { 
     menuitem.Text = "<span>" + menuitem.Text + "</span>"; 
    } 
} 

回答

0

如選擇

e.Item.Selected = true; 

並設置應當標註的項目DynamicSelectedStyle-CssClass(和/或StaticSelectedStyle-CssClass,真的不知道哪一個適用於您的情況)與"SOMECLASS"

編輯

似乎有一個問題Menu控制和選課。 This other question爲您的場景提供了一種可能對您有幫助的解決方法。

+0

這不起作用。所選內容完全不會呈現。 – Anna

+0

@Anna:選擇不會呈現,但應該設置選定的CSS類。 –

+0

就是這樣,所選的班級沒有設置。 – Anna