Attributes added to a ListItem on a DropDownList server control don't get rendered. If you use an HtmlSelectControl, they get rendered, but don't persist via ViewState on postback....
private void FillColorList()
{
foreach(PropertyInfo property in typeof(Color).GetProperties(BindingFlags.Static |
BindingFlags.Public |
BindingFlags.NonPublic))
{
if(property.ReflectedType.ToString() == typeof(Color).ToString())
{
Color color = (Color) property.GetValue(null, null);
string htmlColor = string.Format("#{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);
ListItem item = new ListItem(color.Name, htmlColor);
item.Attributes.Add("style", String.Format("background-color: {0}", htmlColor));
this.dropDownListEventColor.Items.Add(item);
}
}
}