Member 13009937 Ответов: 0

Как я могу создать общую пагинацию с видом сетки без установки какого-либо пакета 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

Уважаемый господин
Я хочу создать общую пагинацию, используя этот код.Используя этот код в одном месте моего проекта ... Я хочу разбить на страницы больше страниц просмотра.Все просмотренные страницы используют только общий код разбиения на страницы.Но я не понимаю, как я решаю эту проблему.Пожалуйста, пришлите мне полный код или ссылку.

0 Ответов