Как изменить стиль пакета `ReflectionIT.Mvc.Paging` в ядре asp.net - PullRequest
1 голос
/ 04 июля 2019

Я работаю над проектом Asp.net core 2.2 и использую пакет ReflectionIT.Mvc.Paging для подкачки страниц.Все в порядке, но я хочу изменить стиль подкачки на мой взгляд.

Вот код для использования Pager просмотр компонента

    <nav>
        @await this.Component.InvokeAsync("Pager", new { PagingList = this.Model })
    </nav>

А вот изображение подкачки:

enter image description here

Я хочу написать First И Last вместо 1 И 15 на картинке выше и хочу изменить некоторые стили CSS.

1 Ответ

2 голосов
/ 05 июля 2019

Вы также можете создать свой собственный вид Pager, если хотите. Вы храните его в папке Views\Shared\Components\Pager:

enter image description here

Вы можете, например, вызвать метод AddPaging, который можно использовать для установки PagingOptions. Это позволяет вам указать, какой View используется для ViewComponent Pager, в функции ConfigureServices:

// Register ViewComponent using an EmbeddedFileProvider & setting some options
services.AddPaging(options => {
    options.ViewName = "Bootstrap5";
    options.HtmlIndicatorDown = " <span>&darr;</span>";
    options.HtmlIndicatorUp = " <span>&uarr;</span>";
});

Измените Bootstrap5.cshtml в соответствии с вашими требованиями:

@model  ReflectionIT.Mvc.Paging.IPagingList

@* Fake Boostrap 5 based pager *@

@{
    var start = this.Model.StartPageIndex;
    var stop = this.Model.StopPageIndex;
}

@if (this.Model.PageCount > 1) {
    <ul class="pagination pagination-sm justify-content-end">

        @if (start > 1) {
            <li class="page-item">
                <a href="@Url.Action(Model.Action, Model.GetRouteValueForPage(1))" aria-label="First" class="page-link">
                    <span aria-hidden="true">First</span>
                </a>
            </li>
        }

        @if (this.Model.PageIndex > 1) {
            <li class="page-item">
                <a href="@Url.Action(Model.Action, Model.GetRouteValueForPage(this.Model.PageIndex - 1))" aria-label="Previous" class="page-link">
                    <span aria-hidden="true">&laquo;</span>
                </a>
            </li>
        }

        @for (int i = start; i <= stop; i++) {
            <li class="page-item @((Model.PageIndex == i) ? "active" : null)">
            @if (i == 1)
                {
                    @Html.ActionLink("First", Model.Action, Model.GetRouteValueForPage(i), new { @class = "page-link" })
                }
                else{
                    @Html.ActionLink(i.ToString(), Model.Action, Model.GetRouteValueForPage(i), new { @class = "page-link" })
                }

            </li>
        }

        @if (this.Model.PageIndex < this.Model.PageCount) {
            <li class="page-item">
                <a href="@Url.Action(Model.Action, Model.GetRouteValueForPage(this.Model.PageIndex + 1))" aria-label="Next" class="page-link">
                    <span aria-hidden="true">&raquo;</span>
                </a>
            </li>
        }

        @if (stop < this.Model.PageCount) {
            <li class="page-item">
                <a href="@Url.Action(Model.Action, Model.GetRouteValueForPage(this.Model.PageCount))" aria-label="Last" class="page-link">
                    <span aria-hidden="true">Last</span>
                </a>
            </li>
        }

    </ul>
}

Выход:

enter image description here

...