ASP.NET下拉菜单项颜色

ASP.NET下拉菜单项颜色,asp.net,drop-down-menu,Asp.net,Drop Down Menu,我在ASP.NET页面上有一个下拉列表,该页面由SQL数据库填充 <asp:DropDownList ID="ddlName" runat="server"></asp:DropDownList> 我想知道是否可以根据列表中某个项目的值更改其背景或文本颜色 我注意到下面的示例在页面首次加载时有效,但在回发时,文本颜色消失,即使代码在那里。我有什么遗漏吗 protected override void Page_Load(object sender, EventArgs

我在ASP.NET页面上有一个下拉列表,该页面由SQL数据库填充

<asp:DropDownList ID="ddlName" runat="server"></asp:DropDownList>
我想知道是否可以根据列表中某个项目的值更改其背景或文本颜色


我注意到下面的示例在页面首次加载时有效,但在回发时,文本颜色消失,即使代码在那里。我有什么遗漏吗

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");
                }
            }

        }

    }

是的,你当然可以,把它添加到你的页面加载事件中

foreach(ListItem item in ddlName.Items) {
    if(item.Value == "someStringValue") {
        item.Attributes.Add("style", "color:red")
    }
}
如果不起作用,您可以将此代码移动到下拉列表的数据绑定事件。

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