Как я могу создать чередующиеся цвета фона для строк списка, используя только 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.