public static MvcHtmlString PageLinks(this HtmlHelper html, Paginacao paginacao, Func <int, string> paginaUrl) { StringBuilder resultado = new StringBuilder(); for (int i = 1; i < paginacao.TotalPaginas; i++) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", paginaUrl(i)); tag.InnerHtml = i.ToString(); if (i == paginacao.PaginaAtual) { tag.AddCssClass("selected"); tag.AddCssClass("btn-primary"); } tag.AddCssClass("btn btn-default"); resultado.Append(tag); } return MvcHtmlString.Create(resultado.ToString()); }
public void TestarSeaPaginacaoEstaSendoGeradaCorretamente() { //Arrange HtmlHelper html = null; Paginacao paginacao = new Paginacao { PaginaAtual = 2, ItensPorPagina = 10, ItensTotal = 28 }; Func<int, string> paginaUrl = i => "Pagina" + i; //Act MvcHtmlString resultado = html.PageLinks(paginacao, paginaUrl); //Assert Assert.AreEqual( @"<a class= btn btn-default href = Pagina1 >1</a>" + @"<a class= btn btn-default btn-primary selected href= Pagina2 >2</a>" + @"<a class= btn btn-default href= Pagina3 >3</a>", resultado.ToString()); }