Usually, you'd use something like:
ListItem MyListItem = new ListItem("text", "value");
MyListItem.Attributes.CssStyle.Add("color", "red");
MyListBox.Add(MyListItem);
However, there's a known bug in the standard ListBox and DropDownList
classes, where item attributes are ignored. To get around this, you need to
create a new class derived from the standard ListBox or DropDownList class
and override it's RenderContents method to correctly render the attributes:
override protected void RenderContents(HtmlTextWriter writer)
{
for(int c=0;c<Items.Count;c++)
{
ListItem i = Items[c];
writer.WriteBeginTag("option");
if(i.Selected) writer.WriteAttribute("selected", "selected", false);
writer.WriteAttribute("value", i.Value, true);
IEnumerator d = Items[c].Attributes.Keys.GetEnumerator();
while(d.MoveNext())writer.WriteAttribute(d.Current.ToString(),Items[c].Attri
butes[d.Current.ToString()]);
writer.Write('>');
System.Web.HttpUtility.HtmlEncode(i.Text, writer);
writer.WriteEndTag("option");
writer.WriteLine();
}
}
(The code above is from
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=u4Yvw5wzBHA.2520@tkmsftngp05)
Hope this helps,
Mun