Указание опций PagedListPager

У меня есть приведенный ниже код для PagedListPager:

@Html.PagedListPager(
    model,
    page => Url.Action("Index",
    new
    {
        page,
        sortOrder = ViewBag.CurrentSort,
        currentFilter = viewBag.CurrentFilter
    }
    ),
    new PagedListRenderOptions()
    {
        LiElementClasses = new List<string> {"myClass", "yourClass"}
    })  

Как в экземпляре PagedListRenderOptions указать/добавить параметр для PagedListRenderOptions.OnlyShowFivePagesAtATime?


Класс PagedListRenderOptions определяется следующим образом:

public class PagedListRenderOptions
{
    public PagedListRenderOptions();
    ...
    public static PagedListRenderOptions OnlyShowFivePagesAtATime { get; }
    public IEnumerable<string> LiElementClasses { get; set; }
    ....
}

ОБНОВИТЬ

Причина, по которой я думаю, что это возможно, заключается в том, что следующее возможно и работает:

Html.PagedListPager(
    model,
    page => Url.Action("Index",
    new
    {
        page,
        sortOrder = ViewBag.CurrentSort,
        currentFilter = viewBag.CurrentFilter
    }
    ),PagedListRenderOptions.OnlyShowFivePagesAtATime)  

Я знаю, что OnlyShowFivePagesAtATime объявлен как статический и без сеттера. Но ведь есть способ передать это как вариант?

pnizzle 21.01.2019 00:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
1 611
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, оно объявлено как поле static и не предназначено для установки.

Он просто возвращает PagedListRenderOptions только для чтения с фиксированными свойствами, поэтому вам не нужно его создавать.

Вы можете использовать следующие

@Html.PagedListPager(
model,
page => Url.Action("Index",
new
{
    page,
    sortOrder = ViewBag.CurrentSort,
    currentFilter = viewBag.CurrentFilter
}
),
new PagedListRenderOptions()
{
    LiElementClasses = new List<string> {"myClass", "yourClass"},
    //The following properties are the same as OnlyShowFivePagesAtATime
    DisplayLinkToFirstPage = PagedListDisplayMode.Never,
    DisplayLinkToLastPage = PagedListDisplayMode.Never,
    DisplayLinkToPreviousPage = PagedListDisplayMode.Always,
    DisplayLinkToNextPage = PagedListDisplayMode.Always,
    MaximumPageNumbersToDisplay = 5
}) 

Рассмотрим аналогичный случай.

Вы можете построить структуру Color, установив ее значение A,R,G,B. Однако, когда вам нужен синий цвет, вы можете просто использовать Цвет синий, которое является статическим свойством только для чтения, его значения A, R, G, B фиксированы и уже установлены для вас.

Это имеет смысл, я это прекрасно понимаю, но по какой-то причине вы можете передать это свойство как опцию в инициализаторе PagedListPager. Смотрите мое обновление. Но вы правы, судя по всему, это невозможно с тем способом, на который я надеюсь...

pnizzle 21.01.2019 03:37

Итак, я думаю, что мы согласны. Вы можете попробовать объявить переменную ‘var option = PagedListRenderOptions.OnlyShowFivePagesAtATime;’ и добавить к переменной дополнительные свойства. А затем передать эту переменную в метод. Но просто не могу сделать это в одну строку.

kennyzx 21.01.2019 03:42

Я уже реализовал аналогичный тому, что у вас есть в ответе, с некоторыми классами элементов. Это лучший способ.

pnizzle 21.01.2019 03:44

Другие вопросы по теме