ASP DropDown项属性

时间:2017-01-30 11:26:21

标签: c# css asp.net

我正在尝试为下拉列表中的某些项目设置背景图片 但这完全不起作用。

现在,这可行

ddl.Items[0]?.Attributes.CssStyle.Add("background-color", "red");
ddl.Items[0]?.Attributes.CssStyle.Add("color", "blue");

背景为红色,第一项的文字为​​蓝色,休息正常

但是,

ddl.Items[0]?.Attributes.CssStyle.Add("background-image", "url('ico.png')");

没有。

对于这两种情况,我也试过这个(下面)。相同的结果

ddl.Items[0]?.Attributes.Add("style", "background-image:url('ico.png');");

当我在aspx本身设置background-image属性时

<asp:DropDownList Style="background-image: url('ico.png')" id=../>

它在控制之下,但在列表扩展到选择项目时却没有。

我已经在网上看到你甚至无法设置简单的颜色,但它对我有用,所以如果他们稍后添加了这个功能,也许这个特殊的属性由于某种原因没有添加。

或者,如果您想到另一种向某些ddl项添加图标的方法,请随时链接/建议。

非常感谢!

1 个答案:

答案 0 :(得分:0)

            DropDownList1.DataSource = objdt;
            DropDownList1.DataTextField = "Country";
            DropDownList1.DataValueField = "Id";
            DropDownList1.DataBind();
            //Now add class to each and every item in dropdown
            //Now, add a "SysCode" attribute to each item in the dropdown list
            string imageURL = "";
            for (int i = 0; i < DropDownList1.Items.Count; i++)
            {
                switch (DropDownList1.Items[i].Text)
                {
                    case "India": imageURL = "Images/flag-of-India.png";
                        break;
                    case "Kuwait": imageURL = "Images/flag-of-Kuwait.png";
                        break;
                    case "Egypt": imageURL = "Images/flag-of-Egypt.png";
                        break;
                    case "Bangladesh": imageURL = "Images/flag-of-Bangladesh.png";
                        break;
                    case "Afghanistan": imageURL = "Images/flag-of-Afghanistan.png";
                        break;
                }
                ListItem item = DropDownList1.Items[i];
                item.Attributes["style"] = "background: url(" + imageURL + ");background-repeat:no-repeat;";
            }
        }
    }