public void Can_Generate_Page_Links() { // przygotowanie - definiowanie metody pomocniczej HTML — potrzebujemy tego, // aby użyć metody rozszerzającej HtmlHelper myHelper = null; // przygotowanie - tworzenie danych PagingInfo PagingInfo pagingInfo = new PagingInfo { CurrentPage = 2, TotalItems = 28, ItemsPerPage = 10 }; // przygotowanie - konfigurowanie delegatu z użyciem wyrażenia lambda Func<int, string> pageUrlDelegate = i => "Strona" + i; // działanie MvcHtmlString result = myHelper.PageLinks(pagingInfo, pageUrlDelegate); // asercje Assert.AreEqual(@"<a class=""btn btn-default"" href=""Strona1"">1</a>" + @"<a class=""btn btn-default btn-primary selected"" href=""Strona2"">2</a>" + @"<a class=""btn btn-default"" href=""Strona3"">3</a>", result.ToString()); }
public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int,string> pageUrl) { StringBuilder result = new StringBuilder(); for (int i=1; i <= pagingInfo.TotalPages;i++) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href",pageUrl(i)); tag.InnerHtml = i.ToString(""); if (i == pagingInfo.CurrentPage) tag.AddCssClass("selected"); result.Append(tag.ToString()); } return MvcHtmlString.Create(result.ToString()); }
public void Can_Generate_Page_Links() { HtmlHelper myHelper = null; var pagingInfo = new PagingInfo { CurrentPage = 2, TotalItems = 28, ItemsPerPage = 10 }; Func<int, string> pageUrlDelegate = i => "Page" + i; var result = myHelper.PageLinks(pagingInfo, pageUrlDelegate); Assert.AreEqual(result.ToString(), @"<a href=""Page1"">1</a><a class=""selected"" href=""Page2"">2</a><a href=""Page3"">3</a>"); }
public void Can_Generate_Page_Links() { //Arrange HtmlHelper helper = null; PagingInfo pInfo = new PagingInfo() { CurrentPage = 2, ItemsPerPage = 10, TotalItems = 28 }; Func<int, string> del = x => "Page" + x.ToString(); //Act MvcHtmlString mvcString = helper.PageLinks(pInfo, del); //Assert Assert.AreEqual(@"<a href=""Page1"">1</a>"+ @"<a class=""selected"" href=""Page2"">2</a>" + @"<a href=""Page3"">3</a>",mvcString.ToString()); }
public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pageInfo, Func<int, string> pageUrl) { StringBuilder result = new StringBuilder(); for (int i = 1; i <= pageInfo.TotalPages; i++) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", pageUrl(i)); tag.InnerHtml = i.ToString(); // если текущая страница, то выделяем ее, // например, добавляя класс if (i == pageInfo.CurrentPage) { tag.AddCssClass("selected"); tag.AddCssClass("btn-primary"); } tag.AddCssClass("btn btn-default"); result.Append(tag.ToString()); } return MvcHtmlString.Create(result.ToString()); }