Как можно применить стили к CheckBoxList ListItems. В отличие от других элементов управления, таких как Repeater, где вы можете указать <ItemStyle>, вы не можете указать стиль для каждого отдельного элемента управления.
Есть ли какая-то работа?





Кажется, лучший способ сделать это - создать новый класс CssClass. ASP.NET переводит CheckBoxList в структуру таблицы.
Используя что-то вроде
Style.css
.chkboxlist td
{
font-size:x-large;
}
Page.aspx
<asp:CheckBoxList ID = "chkboxlist1" runat = "server" CssClass = "chkboxlist" />
сделает трюк
Спасибо за чаевые! Я хотел больше о том, как повторитель может применить стиль к каждому элементу, но это, безусловно, полезно :)
Вы можете программно добавлять атрибуты в ListItems следующим образом.
Допустим, у вас есть CheckBoxList и вы добавляете ListItems. Вы можете добавлять атрибуты по ходу дела.
ListItem li = new ListItem("Richard Byrd", "11");
li.Selected = false;
li.Attributes.Add("Style", "color: red;");
CheckBoxList1.Items.Add(li);
Это сделает цвет текста элемента списка красным. Экспериментируйте и получайте удовольствие.
Помимо ответа Эндрю ...
В зависимости от того, какие другие атрибуты вы добавляете в CheckBoxList или RadioButtonList или что-то еще, ASP.Net будет отображать вывод с использованием разных структур. Например, если вы установите RepeatLayout = "Flow", он не будет отображаться как ТАБЛИЦА, поэтому вы должны быть осторожны с тем, какие селекторы потомков вы используете в своем файле CSS.
В случаях наиболее вы можете просто выполнить «Просмотр исходного кода» на своей отображаемой странице, возможно, в нескольких разных браузерах, и выяснить, что делает ASP.Net. Однако существует опасность, что новые версии серверных элементов управления или разные браузеры будут отображать их по-другому.
Если вы хотите стилизовать определенный элемент списка или набор элементов списка по-другому, не добавляя атрибуты в код программной части, вы можете использовать селекторы атрибутов CSS. Единственный недостаток в том, что они не поддерживаются в IE6. jQuery полностью поддерживает селекторы атрибутов стиля CSS 3, так что вы, вероятно, также можете использовать его для более широкой поддержки браузеров.
В этом случае был бы полезен пример стилизации CSS с использованием селекторов атрибутов CSS.
Вы также можете добиться этого в разметке.
<asp:ListItem Text = "Good" Value = "True" style = "background-color:green;color:white" />
<br />
<asp:ListItem Text = "Bad" Value = "False" style = "background-color:red;color:white" />
Слово Style будет подчеркнуто с предупреждением, что Атрибут style не является допустимым атрибутом элемента ListItem., но элементы все равно отформатированы по желанию.
+ 1. Это тоже круто. Хотя позже я бы побеспокоился, что они сделают так, чтобы этот обходной путь больше не работал.
@Cyberherbalist Пока элементы управления ASP.NET превращаются в элементы HTML в браузере, обходной путь стиля будет работать. Другими словами, я не вижу, чтобы он когда-либо ломался.
public bool Repeater_Bind()
{
RadioButtonList objRadioButton = (RadioButtonList)eventArgs.Item.FindControl("rbList");
if (curQuestionInfo.CorrectAnswer != -1) {
objRadioButton.Items[curQuestionInfo.CorrectAnswer].Attributes.Add("Style", "color: #b4fbb1;");
}
}
У вас даже могут быть разные стили шрифта и цвет для каждого слова.
<asp:ListItem Text = "Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value = "10"></asp:ListItem>
Это, конечно, влияет на все элементы списка, чтобы повлиять на один элемент списка, вам нужно добавить атрибуты к элементу списка по мере его создания.