2010-08-10 84 views
4

我有一个DropDownList的ASP.NET页面上填充SQL数据库。ASP.NET下拉菜单项目颜色

<asp:DropDownList ID="ddlName" runat="server"></asp:DropDownList> 

人口是在代码隐藏文件下来:

ddlName.DataSource = SqlDataSource1; 
ddlName.DataValueField = (this.ddlName.SelectedValue); 
ddlName.DataTextField = "ccName"; 
ddlName.DataBind(); 

我想知道是否有可能根据它的值更改列表中的项目的背景或文本颜色?


我刚刚注意到,当第一次加载页面,但在回发的文字颜色消失,即使是其中的代码是下面的例子中工作。有什么我失踪?

protected override void Page_Load(object sender, EventArgs e) 
    { 

     if (!IsPostBack) 
     { 

      ddlName.DataSource = SqlDataSource5; 
      ddlName.DataValueField = (this.ddlName.SelectedValue); 
      ddlName.DataTextField = "ccName"; 
      ddlName.DataBind(); 


      foreach (ListItem item in ddlName.Items) 
      { 
       if (item.Value == "Item 1") 
       { 
        item.Attributes.Add("style", "color:red"); 
       } 

       if (item.Value == "Item 2") 
       { 
        item.Attributes.Add("style", "color:red"); 
       } 
      } 

     } 

    } 

回答

5

是的,你确定可以,添加到你的页面加载事件。

foreach(ListItem item in ddlName.Items) { 
    if(item.Value == "someStringValue") { 
     item.Attributes.Add("style", "color:red") 
    } 
} 

如果不工作,你可以将此代码移动到下拉列表的数据绑定事件。

+1

完美运作。谢谢! – Brett 2010-08-12 13:54:37