2016-12-12 1 views
0

Мне нужно добавить класс в тег li в списке пейджера садовника.Добавить класс в список в списке пейджера Orchard

Я вижу, что форма построена в CoreShapes.cs, а классы добавляются к первому и последнему элементам. Я не хочу редактировать исходный код Orchard и добавить itemTag.AddCssClass("my-class").

Я могу добавить альтернативу для List, но это отменяет списки на всем сайте. ShapeTracing не показывает других альтернатив.

Я отлаживал Pager.cshtml и связанные с ним альтернативы .Last, .Link и т. Д., Но я не могу добраться до li между ссылкой и ul.

Я прочел это article, но это только бухты внутри li. Я прочитал это article, но это предполагает, что у меня есть Model.ContentItems.

Аналогичные вопросы касаются SO, но они охватывают только элементы контента, которые на самом деле имеют альтернативы.

Идеально я хочу сделать что-то вроде добавления List.Pager.cshtml и там делать;

<li class="my-class"> 
    @Display(Model) 
</li> 
+0

Если вы в состоянии написать достаточное ' Match' в вашем 'placement.info' вы могли бы [добавить альтернативу] (http://docs.orchardproject.net/en/latest/Documentation/Understanding-placement-info/#alternate) оттуда. – Xceno

ответ

0

Добавление альтернативы для формы списка - путь, который я думаю.

1) Добавить alternate для определенного списка, как MyList.cshtml

2) Занять некоторый код из Orchard.Core/Shapes/Views/Menu.cshtml и добавьте следующие строки в MyList.cshtml:

var items = (IList<dynamic>)Enumerable.Cast<dynamic>(Model.Items); 

if (items.Any()) { 
    items[%YourItem%].Classes.Add("my-class"); 
} 

... 

@DisplayChildren(Model)