public static MvcHtmlString PageLinks(this HtmlHelper html, PagingIfno pagingIfno, Func <int, string> pageUrl)
        {
            StringBuilder result = new StringBuilder();

            for (int i = 1; i <= pagingIfno.TotalPages; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(i));
                tag.InnerHtml = i.ToString();
                if (i == pagingIfno.CurrentPage)
                {
                    tag.AddCssClass("selected");
                    tag.AddCssClass("btn-primary");
                }
                tag.AddCssClass("btn btn-default");
                result.Append(tag.ToString());
            }
            return(MvcHtmlString.Create(result.ToString()));
        }
Exemple #2
0
        public void Can_generate_Page_Links()
        {
            HtmlHelper myHelper = null;

            PagingIfno pagingIfno = new PagingIfno {
                CurrentPage = 2,
                TotalItems  = 28,
                ItemPerPage = 10
            };

            Func <int, string> pageUrlDelegate = i => "Strona" + i;
            //act
            MvcHtmlString result = myHelper.PageLinks(pagingIfno, pageUrlDelegate);

            //assert
            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());
        }
Exemple #3
0
        public void Can_Send_Paginatio_View_Model()
        {
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[]
            {
                new Product {
                    ProductID = 1, Name = "P1"
                },
                new Product {
                    ProductID = 2, Name = "P2"
                },
                new Product {
                    ProductID = 3, Name = "P3"
                },
                new Product {
                    ProductID = 4, Name = "P4"
                },
                new Product {
                    ProductID = 5, Name = "P5"
                }
            });

            ProductController controller = new ProductController(mock.Object);

            controller.PageSize = 3;

            ProductsListViewModel result = (ProductsListViewModel)controller.List(null, 2).Model;

            PagingIfno pageInfo = result.PagingIfno;

            Assert.AreEqual(pageInfo.CurrentPage, 2);
            Assert.AreEqual(pageInfo.ItemPerPage, 3);
            Assert.AreEqual(pageInfo.TotalItems, 5);
            Assert.AreEqual(pageInfo.TotalPages, 2);
        }