public static DropdownMenuContent BeginDropdown <T>(this IItemWriter <T, AnyContent> parent) where T : AnyContentElement, IDropdownMenuParentMarker { parent .CssClass("dropdown-toggle") .Attribute("data-toggle", "dropdown") .Attribute("aria-expanded", "false"); var caret = parent.Helper.CreateWriter <SimpleBlock>(parent.Item); caret.Item.Value = " <span class=\"caret\"></span>"; caret.Item.DisableEncoding = true; parent.Content(caret); // NO Content(menu.Item) !!! // полностью записываем parent, так как меню будет ПОСЛЕ него var parentEnd = parent.BeginContent(); parentEnd.Dispose(); var menu = parent.Helper.CreateWriter <DropdownMenu, DropdownMenuContent>(parent.Item.Parent); // пишем начало меню var menuEnd = menu.BeginContent(); // возвращаем конец, чтобы записали "когда надо" return(menuEnd); }
public static IItemWriter <T, AnyContent> Dropdown <T>(this IItemWriter <T, AnyContent> parent, IItemWriter <DropdownMenu> menu) where T : AnyContentElement, IDropdownMenuParentMarker { parent .CssClass("dropdown-toggle") .Attribute("data-toggle", "dropdown") .Attribute("aria-expanded", "false"); var caret = parent.Helper.CreateWriter <SimpleBlock>(parent.Item); caret.Item.Value = " <span class=\"caret\"></span>"; caret.Item.DisableEncoding = true; parent.Content(caret).Content(menu.Item); return(parent); }