سلام استاد. اگه بخوایم مثل همین قسمت پرسش ها که شما درست کردید اون پایین که شماره صفحه ها هست رو ده تا ده تا نشون بدیم چجوری میشه ؟ الان من یه قسمت دارم که تعداد صفحه ها 31 دکمه اون پایینه که خیلی زیاده . میخوام ده تای اول ببین بار اول وقتی به ده رسید ده تای بعدی . چجوری میشه؟
سلام
10 تا نشون بدید و بعد چک کنید اگر تعداد بییشتر از 10 بود یه ادامه بزارید و با کلیک روی اون 10 تای دوم رو نشون بدید
مثلا بین 10 تا 20
استاد کاش نمونه کد خودتونو میزاشتید .
این سایت با Asp.Net Core نوشتته شده و اون قسمت View Component هست و در MVC کار نمیکنه وگر نه حتما قرار میدادم
بررسی میکنم اگر نمونه داشتم براتون میزارم
ممنون استاد عزیز
جوابمو از این سایت پیدا کردم
http://jasonwatmore.com/post/2016/08/23/angular-2-pagination-example-with-logic-like-google
میزارم اینجا تا کسی خواست استفاده کنه
با اجازه دوستم آقا رضا و استاد گرامی،
من این مشکل رو با استفاده از لینکی که دوستمون فرستادن برطرف کردم کد رو میذارم شاید کمک کنه
سمت اکشن که همانطور که استادمون گفتن با کمی تغییر میشه :
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>
خیلی ممنون دوست عزیزم آقا حمزه