No way! Standard ListBox is really "simple". Try something like this:
/// <summary>
/// ListBoxWithColor
///
/// Simple control that renders the color attribute of each ListBox option.
///
/// Usage:
/// ListBoxWithColor1.Items.Clear();
/// ListBoxWithColor1.Items.Add(new ListItem("Hubba","0"));
/// ListBoxWithColor1.Items[0].Attributes["style"] =
"background-color:red";
///
/// ListBoxWithColor1.Items.Add(new ListItem("Hubba1","1"));
/// ListBoxWithColor1.Items[1].Attributes["style"] =
"background-color:white";
///
/// ListBoxWithColor1.Items[1].Selected = true;
///
/// Test with:
/// M$ Internet Explorer 6.
///
/// </summary>
[ToolboxData("<{0}:ListBoxWithColor runat=server></{0}:ListBoxWithColor>")]
public class ListBoxWithColor : System.Web.UI.WebControls.ListBox
{
public ListBoxWithColor()
{
// constructor
}
/// <summary>
/// Override to save color attrib to viewstate
/// </summary>
protected override object SaveViewState()
{
// creat object array for Item count + 1
object[] allStates = new object[this.Items.Count + 1];
// the +1 is to hold the base info like dis
object baseState = base.SaveViewState();
allStates[0] = baseState;
Int32 i = 1;
// now loop thru and save each Style attrib for the List
foreach(ListItem li in this.Items)
{
allStates[i++] = li.Attributes["style"].ToString();
}
return allStates;
}
/// <summary>
/// Override to restore color attrib
/// </summary>
protected override void LoadViewState(object savedState)
{
if (savedState != null)
{
object[] myState = (object[])savedState;
// restore base first
if (myState[0] != null)
base.LoadViewState(myState[0]);
Int32 i = 1;
foreach(ListItem li in this.Items)
{
// loop thru and restore each style attrib
li.Attributes["style"] = (string)myState[i++];
}
}
}
/// <summary>
/// Override to render contents of ListBox
/// </summary>
protected override void RenderContents(HtmlTextWriter writer)
{
foreach(ListItem li in this.Items)
{
writer.WriteBeginTag("option");
if(li.Selected)
writer.WriteAttribute("selected","selected",false) ;
if(li.Attributes.Count > 0)
li.Attributes.Render(writer);
writer.WriteAttribute("value",li.Value.ToString()) ;
writer.Write(HtmlTextWriter.TagRightChar);
writer.Write(li.Text);
writer.WriteEndTag("option");
writer.WriteLine();
}
}
}
--
C# Dev
"Jason L Lind" wrote:
I do not believe that is possible in HTML. You might want to look into using
an ASP.NET DataList.
Jason Lind
"mkiger" wrote:
Hey Guys.
I'm making an asp.net app and I have a question regarding listboxes. I
have a list box and I would like some of the items to be bold based on
certian criteria. Is this possible?
matt