Как я могу создать чередующиеся цвета фона для строк списка, используя только ItemTemplate?

Как я могу создать чередующиеся цвета фона для строк списка, используя только ItemTemplate? Я не хочу использовать AlternateTemplate, потому что мне придется редактировать их каждый раз, когда я хочу что-то изменить, когда все, что я использую, - это создавать чередующиеся цвета фона. Так как же я мог бы сделать это, используя только ItemTemplate? Спасибо!

4 ответа

Решение

Если бы вы могли считать чередующиеся цвета прогрессивным улучшением и не обязательно требоваться во всех (старых) браузерах, вы могли бы использовать n-й дочерний селектор CSS, чтобы применить цвет без изменения HTML.

Если у вас уже есть jQuery (или аналогичный) в вашем проекте и вы хотите найти решение для более старого браузера, вы можете использовать его для выбора каждой второй строки с помощью селектора:odd или:even.

Обновление (пример)

Предполагая, что мы используем строки таблицы

tr:nth-child(odd) td{  
  background-color: red;  
}

Вы также можете использовать even, 2n или же 2n+1, Это будет работать одинаково хорошо с <li> теги.

Дополнительные примеры: http://reference.sitepoint.com/css/pseudoclass-nthchild

Это тоже может сработать:

Чередование цветов строк таблицы с помощью элемента управления ASP.Net ListView

Он использует синтаксис стиля <% # на странице ASPX для переключения класса на основе DisplayIndex Mod 2.

Примеры кода C# и VB по этой ссылке тоже...

Вы пытались использовать элемент управления Repeater вместо ListView.

Вы получите больший контроль над шаблоном, и вам будет легче менять чередующиеся цвета без дублирующих шаблонов.

Используйте событие ItemDataBound объекта ListView (если оно есть, как у повторителя). Добавьте элемент runat="server" в свой ItemTemplate, который вы можете использовать для установки цвета с помощью класса. Получите ссылку на этот элемент управления в событии и установите класс css.

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