diff --git a/Juice/Mvc/Mobile/Navbar.cs b/Juice/Mvc/Mobile/Navbar.cs index 7825f8c..dfe9966 100644 --- a/Juice/Mvc/Mobile/Navbar.cs +++ b/Juice/Mvc/Mobile/Navbar.cs @@ -36,7 +36,10 @@ public partial class MobileHelpers { public class NavbarWidget : JuiceMobileWidget, IDisposable { + private List _items = new List(); + public NavbarWidget(HtmlHelper helper) : base(helper, "navbar") { + _optionsMap = new Dictionary { { "icon", "icon" }, { "iconpos", "iconpos" }, @@ -54,5 +57,33 @@ public class NavbarWidget : JuiceMobileWidget, IDisposable { return this; } + public NavbarWidget AddItem(Func content) { + + HelperResult res = content(this); + + _items.Add(res); + + return this; + } + + public override void RenderStart() { + base.RenderStart(); + + _writer.WriteFullBeginTag("ul"); + + foreach(var item in _items) { + + _writer.WriteBeginTag("li"); + _writer.Write(System.Web.UI.HtmlTextWriter.TagRightChar); + + _writer.Write(item.ToHtmlString()); + + _writer.WriteEndTag("li"); + } + + _writer.WriteEndTag("ul"); + + } + } } diff --git a/Tests/Mvc/Areas/Mobile/Views/Navbars/Index.cshtml b/Tests/Mvc/Areas/Mobile/Views/Navbars/Index.cshtml index c99d583..8f21df0 100644 --- a/Tests/Mvc/Areas/Mobile/Views/Navbars/Index.cshtml +++ b/Tests/Mvc/Areas/Mobile/Views/Navbars/Index.cshtml @@ -2,9 +2,7 @@ @Html.Juice().Mobile.BeginHeader().Content(@

Navbars

) @{ - Html.Juice().Mobile.Anchor(iconpos: MobileIconPosition.NoText, icon: MobileIcon.Home, direction: MobileDirection.Reverse) - .AddAttribute("href", "/") - .AddAttribute("id", "_Home") + Html.Juice().Mobile.Anchor("_Home", "/", iconpos: MobileIconPosition.NoText, icon: MobileIcon.Home, direction: MobileDirection.Reverse) .Content(@Home) .Render(); } @@ -13,6 +11,116 @@ @Html.Juice().Mobile.BeginContent() + @{ + Html.Juice().Mobile.BeginNavbar() + .AddItem(@One) + .AddItem(@Two) + .Render(); + } + @Html.Juice().Mobile.EndNavbar() + + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@One) + .AddItem(@Two) + .AddItem(@Three) + .AddItem(@Four) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@One) + .AddItem(@Two) + .AddItem(@Three) + .AddItem(@Four) + .AddItem(@Five) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@One) + .AddItem(@Two) + .AddItem(@Three) + .AddItem(@Four) + .AddItem(@Five) + .AddItem(@Six) + .AddItem(@Seven) + .AddItem(@Eight) + .AddItem(@Nine) + .AddItem(@Ten) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + + @Html.Juice().Mobile.BeginNavbar().AddItem(@One) + @Html.Juice().Mobile.EndNavbar() + + @Html.Juice().Mobile.BeginHeader().Content(@

I'm a header

) + Options + + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@One) + .AddItem(@Two) + .AddItem(@Three) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.EndHeader() + + @Html.Juice().Mobile.BeginFooter() + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@One) + .AddItem(@Two) + .AddItem(@Three) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.BeginFooter() + + @Html.Juice().Mobile.BeginFooter() + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@Summary) + .AddItem(@Favs) + .AddItem(@Setup) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.EndFooter() + + @Html.Juice().Mobile.BeginFooter() + @{ Html.Juice().Mobile.BeginNavbar(iconpos: MobileIconPosition.Bottom) + .AddItem(@Summary) + .AddItem(@Favs) + .AddItem(@Setup) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.EndFooter() + + @Html.Juice().Mobile.BeginFooter() + @{ Html.Juice().Mobile.BeginNavbar(iconpos: MobileIconPosition.Left) + .AddItem(@Summary) + .AddItem(@Favs) + .AddItem(@Setup) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.EndFooter() + + + @Html.Juice().Mobile.BeginFooter() + @{ Html.Juice().Mobile.BeginNavbar(iconpos: MobileIconPosition.Right) + .AddItem(@Summary) + .AddItem(@Favs) + .AddItem(@Setup) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.EndFooter() + + @Html.Juice().Mobile.BeginFooter() + @{ Html.Juice().Mobile.BeginNavbar() + .AddItem(@A) + .AddItem(@B) + .AddItem(@C) + .AddItem(@D) + .AddItem(@E) + .Render(); } + @Html.Juice().Mobile.EndNavbar() + @Html.Juice().Mobile.EndFooter() + @Html.Juice().Mobile.EndContent()