【发布时间】:2011-10-08 21:32:28
【问题描述】:
我似乎无法弄清楚这一点。我有一个asp DropDownList 控件。这由我从 SQL 获得的数据类列表填充。 DropDownList 位于 ASP 中继器中。我向触发 C# 方法的 asp 控件添加了 OnSelectedIndexChanged 属性。我在 DropDownList 的初始化方法中有一些逻辑,它将特定项目的文本颜色设置为红色(取决于该项目类中的值)。 Whenever that item is selected the text is not red.只有当它是列表中的一个项目时,文本才会显示为红色。如何更改所选项目的颜色?我似乎无法弄清楚这一点。我需要 C# 端的 OnSelectedIndexChanged 方法来触发事件以过滤另一个选择器。所以我已经在选择器改变时发出一个事件。但是我尝试了以下方法:
protected void ddlItem_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender != null)
{
DropDownList DropDownList1 = (DropDownList)sender;
DropDownList1.SelectedItem.Attributes.Add("color", "Red;");
}
}
以上行不通。但我不认为这是问题所在。检查元素后(在上述实现之前),样式颜色属性已设置为红色。这些只是不适用于当前选定的项目吗?
我可以通过设置前景色来设置整个列表的文本颜色。但是我不能设置单个元素的前景色。
【问题讨论】:
-
我强烈建议您尝试避免通过 ForeColor、BackColor 属性的代理在 HTML 元素上间接设置内联样式的便捷 MS 路线。我真的认为你会很好地学习 CSS 和 jQuery 来更好地控制你的 UI,或者至少在你的控件上设置 CSS 类而不是直接设置样式颜色。尝试将 HTML 结构与样式分开,以便于将来的维护和更改。
标签: c# javascript jquery asp.net drop-down-menu