27

如何将样式应用于 CheckBoxList ListItems。与其他控件不同,例如可以指定的 Repeater,您<ItemStyle>似乎无法为每个单独的控件指定样式。

有什么解决办法吗?

4

6 回答 6

27

您可以按如下方式以编程方式将属性添加到 ListItems。

假设您有一个 CheckBoxList 并且您正在添加 ListItems。您可以一路添加属性。

ListItem li = new ListItem("Richard Byrd", "11");
li.Selected = false;
li.Attributes.Add("Style", "color: red;");
CheckBoxList1.Items.Add(li);

这将使列表项文本的颜色变为红色。尝试并玩得开心。

于 2008-09-19T19:03:40.423 回答
14

似乎最好的方法是创建一个新的 CssClass。ASP.NET 将 CheckBoxList 转换为表结构。

使用类似的东西

样式.css

.chkboxlist td 
{
    font-size:x-large;
}

页面.aspx

<asp:CheckBoxList ID="chkboxlist1" runat="server" CssClass="chkboxlist" />

会成功的

于 2008-09-19T18:52:47.767 回答
6

除了安德鲁的回答......

根据您在CheckBoxListor上放置的其他属性RadioButtonList,ASP.Net 将使用不同的结构呈现输出。例如,如果您设置RepeatLayout="Flow",它不会呈现为 TABLE,因此您必须注意您在 CSS 文件中使用的后代选择器。

大多数情况下,您可以只在渲染页面上执行“查看源代码”,可能在几个不同的浏览器上,然后弄清楚 ASP.Net 在做什么。但是,存在一种危险,即新版本的服务器控件或不同的浏览器会以不同的方式呈现它们。

如果您想以不同的方式设置特定列表项或一组列表项的样式而不在代码隐藏中添加属性,则可以使用 CSS 属性选择器。唯一的缺点是 IE6 不支持它们。jQuery完全支持 CSS 3 样式属性选择器,因此您可能也可以将它用于更广泛的浏览器支持。

于 2008-09-23T00:17:52.127 回答
5

您也可以在标记中实现这一点。

<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”的有效属性。,但无论如何,这些项目都按需要进行了格式化。

于 2012-03-09T10:23:13.650 回答
2

您甚至可以为每个单词设置不同的字体样式和颜色。

<asp:ListItem Text="Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value="10"></asp:ListItem>
于 2013-10-25T18:04:24.993 回答
1
public bool Repeater_Bind()
{
    RadioButtonList objRadioButton = (RadioButtonList)eventArgs.Item.FindControl("rbList");
    if (curQuestionInfo.CorrectAnswer != -1) {
        objRadioButton.Items[curQuestionInfo.CorrectAnswer].Attributes.Add("Style", "color: #b4fbb1;");
    }
}
于 2012-06-28T17:44:50.653 回答