2008-09-19 220 views

回答

22

可以以编程方式将属性添加到时listItems如下。

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

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

这将使listitem文本的颜色变为红色。试验一下,玩得开心。

13

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

使用类似

的style.css

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

Page.aspx

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

会做的伎俩

+0

这当然会影响所有listitems,以影响您创建listitem时需要添加属性的单个listitem。 – Cyberherbalist 2008-09-19 19:05:08

+0

感谢您的提示!我正在做更多的事情,比如一个转发器如何将样式应用于每个项目,但这当然有帮助:) – 2008-09-19 19:33:02

4

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

根据你放什么其他属性上CheckBoxListRadioButtonList,或什么,ASP.Net会采用不同的结构渲染输出。例如,如果您设置了RepeatLayout="Flow",它将不会呈现为TABLE,因此您必须小心您在CSS文件中使用的后代选择器。

大多数的情况下,你可以在你的渲染页面,也许在几个不同的浏览器上做一个“查看源代码”,并找出ASP.Net正在做什么。不过,有一种危险,服务器控件的新版本或不同的浏览器会以不同的方式呈现它们。

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

4

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

<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" /> 

Word样式将与属性“风格”不是元素“列表项”的有效属性警告加以强调。,但是无论如何,这些项目都会根据需要进行格式化。

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;"); 
    } 
} 
1

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

<asp:ListItem Text="Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value="10"></asp:ListItem>