• 1397/04/05

تعداد صفحه ها :

سلام استاد. اگه بخوایم مثل همین قسمت پرسش ها که شما درست کردید اون پایین که شماره صفحه ها هست رو ده تا ده تا نشون بدیم چجوری میشه ؟ الان من یه قسمت دارم که تعداد صفحه ها 31 دکمه اون پایینه که خیلی زیاده . میخوام ده تای اول ببین بار اول وقتی به ده رسید ده تای بعدی . چجوری میشه؟

  • 1397/04/05
  • ساعت 14:17

سلام 

10 تا نشون بدید و بعد چک کنید اگر تعداد بییشتر از 10 بود یه ادامه بزارید و با کلیک روی اون 10 تای دوم رو نشون بدید 

مثلا بین 10 تا 20 


  • 1397/04/10
  • ساعت 11:45

استاد کاش نمونه کد خودتونو میزاشتید .


  • 1397/04/10
  • ساعت 12:06

این سایت با Asp.Net Core نوشتته شده و اون قسمت View Component هست و در MVC کار نمیکنه وگر نه حتما قرار میدادم 

بررسی میکنم اگر نمونه داشتم براتون میزارم 


  • 1397/04/10
  • ساعت 12:07

ممنون استاد عزیز


  • 1397/04/10
  • ساعت 12:59

جوابمو از این سایت پیدا کردم 
http://jasonwatmore.com/post/2016/08/23/angular-2-pagination-example-with-logic-like-google
میزارم اینجا تا کسی خواست استفاده کنه


  • 1398/03/22
  • ساعت 23:16

با اجازه دوستم آقا رضا و استاد گرامی،

من این مشکل رو با استفاده از لینکی که دوستمون فرستادن برطرف کردم کد رو میذارم شاید کمک کنه

سمت اکشن که همانطور که استادمون گفتن با کمی تغییر میشه :

public ActionResult productlist(int pageId = 1)
   {
            //skip
            int pageSize = 4;
            int skip = (pageId - 1) * pageSize;
            //تعداد کل اطلاعات
            int totalItems = db. products.Count();
            ViewBag.pageId = pageId;
            //تعداد کل صفحات
            ViewBag.pageCount = totalItems / pageSize;
            ViewBag.number = totalItems;
            var list = db.products.OrderBy(m => m.Id).Skip(skip).Take(pageSize).ToList();
            return PartialView(list);
        }

و در Razor

 <div class="pager default text-center">
            <ul class="pager-items">
                @{
                    int totalPages = (int)ViewBag.pageCount;
                    int currentPage = (int)ViewBag.pageId;
                    // ensure current page isn't out of range
                    if (currentPage < 1)
                    {
                        currentPage = 1;
                    }
                    else if (currentPage > totalPages)
                    {
                        currentPage = totalPages;
                    }
                    int startPage = (int)ViewBag.number;
                    int endPage = (int)ViewBag.number;

                    if(totalPages <= 10) {
                        // less than 10 total pages so show all
                        startPage = 1;
                        endPage = totalPages;
                    }
                    else
                    {
                        // more than 10 total pages so calculate start and end pages
                        if (currentPage <= 6)
                        {
                            startPage = 1;
                            endPage = 10;
                        }
                        else if (currentPage + 4 >= totalPages)
                        {
                            startPage = totalPages - 9;
                            endPage = totalPages;
                        }
                        else
                        {
                            startPage = currentPage - 5;
                            endPage = currentPage + 4;
                        }
                    }
                    for (int i = startPage; i <= endPage; i++)
                    {
                        <li>
                            <a class="pager-item @((currentPage==i)?"is-active":"")" href="@Url.Action("Index", "category", new { pageId = i })">
                                @i
                            </a>
                        </li>
                    }

                }
            </ul>
        </div>

 


  • 1398/03/23
  • ساعت 09:26

خیلی ممنون دوست عزیزم آقا حمزه


logo-samandehi