代码之家  ›  专栏  ›  技术社区  ›  topcool

如何在asp.net core中更改“ReflectionIT.Mvc.Paging”包样式

  •  0
  • topcool  · 技术社区  · 6 年前

    我在做一个 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样式。

    0 回复  |  直到 6 年前
        1
  •  2
  •   Nan Yu    6 年前

    如果愿意,也可以创建自己的寻呼机视图。你把它放在文件夹里 Views\Shared\Components\Pager :

    enter image description here

    例如,您可以调用 AddPaging 方法,可用于设置 PagingOptions . 这允许您在 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

        2
  •  0
  •   Snow    5 年前

    试试这个

    services.AddPaging(options => {
        options.ViewName = "Bootstrap4";
        options.HtmlIndicatorDown = " <span>&darr;</span>";
        options.HtmlIndicatorUp = " <span>&uarr;</span>";
    });