Как иметь одинаковую разметку одинаково в ItemTemplate и AlternatingItemTemplate в повторителе - ASP.NET - PullRequest
2 голосов
/ 07 декабря 2011

У меня довольно сложная разметка в ItemTemplate из asp:Repeater, и разметка такая же для AlternatingItemTemplate.Я бы не хотел дублировать разметку.Возможно ли это с помощью повторителя?

Список, который я создаю, не поддерживает сортировку / редактирование / добавление и, по сути, представляет собой список элементов.Поскольку я использую ASP.NET 4.0, вы предлагаете альтернативный элемент управления для asp:Repeater (Опять же, я бы не хотел дублировать разметку в предлагаемом вами элементе управления)

Спасибо.

Ответы [ 3 ]

2 голосов
/ 07 декабря 2011

В чем причина того, чтобы AlternatingItemTemplate не пропускал его полностью?Таким образом, вы можете иметь только один шаблон, шаблон ItemTemplate одинаково отображается для нечетных / четных элементов.Есть ли какая-либо разница между ними?

Также помните, что простые различия между нечетными / четными строками (например, другой стиль CSS) могут быть реализованы на ItemTemplate с помощью Container.DataItemIndex (например, CssStyle='<# Container.DataItemIndex % 2 == 0 ? "ItemStyle" : "AlternatingItemStyle"' #>

1 голос
/ 17 марта 2012

Код встроенной страницы для ТР:

<tr class="<%# (Container.ItemIndex % 2 == 0) ? "AltRowStyle" : "" %>">

CSS-код для таблицы с классом 'caseTable'

.caseTable tr.AltRowStyle  td 
{
    background-color: #FAF8DC;
}
1 голос
/ 07 декабря 2011

Пара опций:

  1. Создайте пользовательский элемент управления с нужной вам разметкой и добавьте логическое свойство AltRow, которое определит способ отображения строки.

  2. Используйте javascript / jquery / CSS для реализации альтернативной стилизации строк и полностью игнорируйте AlternatingItemTemplate.

...