protected override void RenderMenuItem (HtmlTextWriter writer, MenuItem item, bool vertical, bool notLast, bool isFirst, OwnerContext oc)
{
Menu owner = Owner;
bool displayChildren = owner.DisplayChildren (item);
bool isDynamicItem = IsDynamicItem (owner, item);
int itemLevel = item.Depth + 1;
string str;
writer.RenderBeginTag (HtmlTextWriterTag.Li);
if (isDynamicItem)
RenderSeparatorImage (owner, writer, oc.DynamicTopSeparatorImageUrl, true);
else
RenderSeparatorImage (owner, writer, oc.StaticTopSeparatorImageUrl, true);
var linkStyle = new Style ();
if (displayChildren && (isDynamicItem || itemLevel >= oc.StaticDisplayLevels))
AddCssClass (linkStyle, isDynamicItem && haveDynamicPopOut ? "popout-dynamic" : "popout");
AddCssClass (linkStyle, "level" + itemLevel);
MenuItemStyleCollection levelStyles = oc.LevelMenuItemStyles;
if (levelStyles != null && levelStyles.Count >= itemLevel) {
MenuItemStyle style = levelStyles [itemLevel - 1];
string cssClass = style.CssClass;
if (!String.IsNullOrEmpty (cssClass))
AddCssClass (linkStyle, cssClass);
}
if (owner.SelectedItem == item)
AddCssClass (linkStyle, "selected");
str = item.ToolTip;
if (!String.IsNullOrEmpty (str))
writer.AddAttribute ("title", str);
linkStyle.AddAttributesToRender (writer);
RenderItemHref (owner, writer, item);
writer.RenderBeginTag (HtmlTextWriterTag.A);
owner.RenderItemContent (writer, item, isDynamicItem);
writer.RenderEndTag ();
str = item.SeparatorImageUrl;
if (String.IsNullOrEmpty (str)) {
if (isDynamicItem)
str = oc.DynamicBottomSeparatorImageUrl;
else
str = oc.StaticBottomSeparatorImageUrl;
}
RenderSeparatorImage (owner, writer, str, true);
// if (itemLevel == 1)
// writer.RenderEndTag (); // </li>
if (displayChildren)
owner.RenderMenu (writer, item.ChildItems, vertical, isDynamicItem, itemLevel, notLast);
if (itemLevel > 1)
writer.RenderEndTag (); // </li>
}