How do I change a listitem font color?

  • Thread starter Thread starter Do
  • Start date Start date
D

Do

Hi,

In my listbox, I'd like to change the color of some listitems
depending on user security.

I tried wrapping the <font color=red></font> around
my listitme's .text property, but the tags show up in the page load.

What can I do here?

Do
 
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
 
Back
Top