我正在尝试为下拉列表中的某些项目设置背景图片 但这完全不起作用。
现在,这可行
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项添加图标的方法,请随时链接/建议。
非常感谢!
答案 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;";
}
}
}