Как я могу создать общую пагинацию с видом сетки без установки какого-либо пакета NuGet ?
Я хочу создать общую пагинацию с видом сетки без установки какого-либо пакета NuGet.Разбиение на страницы и просмотр сетки будут использоваться везде в моем проекте
Что я уже пробовал:
Вот моя модель
public Pager Pager { get; set; }
public class Pager { public Pager(int totalItems, int? page, int pageSize = 5) { var totalPages = (int)Math.Ceiling((decimal)totalItems / (decimal)pageSize); var currentPage = page != null ? (int)page : 1; var startPage = currentPage - 5; var endPage = currentPage + 4; if (startPage <= 0) { endPage -= (startPage - 1); startPage = 1; } if (endPage > totalPages) { endPage = totalPages; if (endPage > 10) { startPage = endPage - 9; } } TotalItems = totalItems; CurrentPage = currentPage; PageSize = pageSize; TotalPages = totalPages; StartPage = startPage; EndPage = endPage; } public int TotalItems { get; private set; } public int CurrentPage { get; private set; } public int PageSize { get; private set; } public int TotalPages { get; private set; } public int StartPage { get; private set; } public int EndPage { get; private set; } }
Вот мой контроллер
public ActionResult Index(int? page) { var dummyItems = db.Employees.Count(); var pager = new Pager(dummyItems, page); var employees = new IndexViewModel { Employees = db.Employees.OrderBy(x => x.EmployeeId).Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(), Pager = pager }; return View(employees); }
Вот мой взгляд
@if (Model.Pager.EndPage > 1) { <div class="pagination"> @if (Model.Pager.CurrentPage > 1) { <div id="pagi" onclick="paging(@(null))"> First</div> <div id="Previous" onclick="paging(@(Model.Pager.CurrentPage - 1))"> Previous</div> } @for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++) { <div id="pagi" class="@(page == Model.Pager.CurrentPage ? "active" : "") "> <div onclick="paging(@page)">@page</div> </div> } @if (Model.Pager.CurrentPage < Model.Pager.TotalPages) { <div id="pagi" onclick="paging(@(Model.Pager.CurrentPage + 1))"> Next</div> <div id="pagi" onclick="paging(@Model.Pager.TotalPages)"> Last </div> } </div> } <script> function paging(page) { $.ajax({ type: 'GET', url: '/Employee/Index?page=' + page, dataType: 'html' }).done(function (response) { $('#List').html(response); }); } </script> <style>
F-ES Sitecore
Что плохого в том, что у тебя есть?
Member 13009937
Уважаемый господин
Я хочу создать общую пагинацию, используя этот код.Используя этот код в одном месте моего проекта ... Я хочу разбить на страницы больше страниц просмотра.Все просмотренные страницы используют только общий код разбиения на страницы.Но я не понимаю, как я решаю эту проблему.Пожалуйста, пришлите мне полный код или ссылку.