MvcContrib Pager Styling - PullRequest
       26

MvcContrib Pager Styling

0 голосов
/ 24 августа 2010

Можно ли в стиле пейджера MvcContrib Grid просто показать "1 2 3 4 ..." для подкачки?

Ответы [ 2 ]

0 голосов
/ 05 июля 2012

Вот моя реализация такой функции:

@using MvcContrib.UI.Pager
@model MvcContrib.Pagination.IPagination
@{
    string action = ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
    string controller = ViewContext.Controller.ValueProvider.GetValue("controller").RawValue.ToString();
}
@functions
{
    public RouteValueDictionary GetRoute(int page)
    {
        var routeValues = new RouteValueDictionary();
        foreach (var key in Context.Request.QueryString.AllKeys.Where(key => key != null))
        {
            routeValues[key] = Context.Request.QueryString[key];
        }
        routeValues["page"] = page;

        return routeValues;
    }   
}
<div class="pagination">
    <center>
        <span class="paginationRight">
            @{
                int thisPage = Model.PageNumber;
                if (Model.HasPreviousPage)
                {
                    for (int i = (5 < Model.PageNumber ? 5 : Model.PageNumber); i >= 1; i--)
                    {
                        int page = thisPage - i;
                        if (page > 0)
                        {
                <text>
                @Html.ActionLink(page.ToString(), action, controller, GetRoute(page), null)
                </text>
                        }
                    }
                }
                <text> | @Model.PageNumber | </text>
                if (Model.HasNextPage)
                {
                    for (int i = 1; i <= (5 < Model.TotalPages - Model.PageNumber ? 5 : Model.TotalPages - Model.PageNumber); i++)
                    {
                        int page = thisPage + i;
                        if (page > 0)
                        {
                <text>
                @Html.ActionLink(page.ToString(), action, controller, GetRoute(page), null)
                </text>
                        }
                    }
                }

            }
        </span>
    </center>
</div>

Это не красиво или что-то в этом роде, но для меня оно работает вполне нормально, и его очень просто изменить.

0 голосов
/ 08 апреля 2011

Насколько я могу судить, такой опции не существует "из коробки". Я задал тот же вопрос в кодекплексе, но, похоже, он еще не готов:

http://mvccontrib.codeplex.com/workitem/5745

...