Exemple #1
0
        public IViewComponentResult Invoke(int totals, int pagesize, int page, string url, int maxPage)
        {
            int totalPages = (int)Math.Ceiling((double)totals / pagesize);
            int pageFirst  = 1;
            int pageLast   = totalPages;
            int pageBack   = page - 1;

            if (pageBack == 0)
            {
                pageBack = 1;
            }

            int pageNext = page + 1;

            if (pageNext > pageLast)
            {
                pageNext = pageLast;
            }

            string pageFisrtUrl = string.Format(url, pageFirst);
            string pageLastUrl  = string.Format(url, pageLast);
            string pageBackUrl  = string.Format(url, pageBack);
            string pageNextUrl  = string.Format(url, pageNext);

            // khai bao dictionary de lu tru key va value trong đó key là số trang hiện tại nếu giống thì sáng lên , còn value là dg dẫn trang đó
            Dictionary <int, string> pageNumbers = new Dictionary <int, string>();

            for (int i = pageFirst; i <= pageLast; i++)
            {
                pageNumbers.Add(i, string.Format(url, i));
            }

            //tạo 1 class helper để chứa các Url đặt tên là PaggingDatasource
            PaggingDatasource datasource = new PaggingDatasource();

            datasource.PageFirstUrl = pageFisrtUrl;
            datasource.PageLastUrl  = pageLastUrl;
            datasource.PageBackUrl  = pageBackUrl;
            datasource.PageNextUrl  = pageNextUrl;
            datasource.Page         = page;
            datasource.PageNumbers  = pageNumbers;


            return(View(datasource));
        }
Exemple #2
0
        public async Task <IViewComponentResult> InvokeAsync(int totals, int pageSize, int page, string url, int maxPage)
        {
            int totalPages = (int)Math.Ceiling((double)totals / pageSize);
            int pageFirst  = 1;
            int pageLast   = totalPages;

            int pageBack = page - 1;

            if (pageBack == 0)
            {
                pageBack = 1;
            }

            int pageNext = page + 1;

            if (pageNext > pageLast)
            {
                pageNext = pageLast;
            }

            string pageFirstUrl = string.Format(url, pageFirst);
            string pageLastUrl  = string.Format(url, pageLast);
            string pageBackUrl  = string.Format(url, pageBack);
            string pageNextUrl  = string.Format(url, pageNext);

            Dictionary <int, string> pageNumbers = new Dictionary <int, string>();

            for (int i = pageFirst; i <= pageLast; i++)
            {
                pageNumbers.Add(i, string.Format(url, i));
            }

            PaggingDatasource dataSource = new PaggingDatasource
            {
                PageFirstUrl = pageFirstUrl,
                PageLastUrl  = pageLastUrl,
                PageBackUrl  = pageBackUrl,
                PageNextUrl  = pageNextUrl,
                page         = page,
                PageNumbers  = pageNumbers
            };

            return(await Task.Run(()
                                  => View(dataSource)));
        }