public static MvcHtmlString PageLinks(this HtmlHelper html, Paginacao paginacao, Func<int, string> paginaUrl) { StringBuilder resultado = new StringBuilder(); for (int i = 1; i <= paginacao.TotalPagina; 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 TestarPaginacaoCorretamente() { //Arrange HtmlHelper htmlHelper = null; Paginacao paginacao = new Paginacao { PaginaAtual = 2, ItensPorPagina = 10, ItensTotal = 28 }; Func<int, string> paginUrl = i => "Pagina" + i; //Act MvcHtmlString resultado = htmlHelper.PageLinks(paginacao, paginUrl); //Assert Assert.AreEqual(@"<a class=""btn btn-default"" href=""Paginal"">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() ); }