【问题标题】:Styling drop down list selected item样式下拉列表选定项
【发布时间】:2018-01-03 16:05:53
【问题描述】:

我在发帖之前检查了这个,没有发现任何问题。

我有一个下拉列表,我在最后手动附加了一个项目。我想为这个项目使用一些其他颜色,比如红色,以将它与其他项目区分开来。我可以做这部分。但是,当我选择该项目时,下拉列表中的选定项目中的文本不是红色的。我不确定是否有任何方法可以访问它以便对其应用样式。

这是我使用的(假设下拉菜单中最后一项的“值”为 0):

ListItem li = ddl1.Items.FindByValue("0");

if (null != li)
{
    li.Attributes.Add("style", "color:red");
}

上述作品将最后一项涂成红色。当我选择最后一项并希望所选项目以相同的红色显示时,以下内容不起作用:

ListItem li = ddl1.Items.FindByValue("0");

if (null != li)
{
    li.Attributes.Add("style", "color:red");

    if (li.Selected)
        ddl1.SelectedItem.Attributes.Add("style", "color:red");
    else
        ddl1.SelectedItem.Attributes.Add("style", "color:black");
}

也没有这样做(如果我选择最后一项,这实际上将所有列表项都涂成红色):

ListItem li = ddl1.Items.FindByValue("0");

if (null != li)
{
    li.Attributes.Add("style", "color:red");
    ddl1.Style["color"] = "red";
}

【问题讨论】:

  • 你会使用 CSS 吗?我可以提供一个使用 CSS 的示例,提供比内联样式更大的灵活性
  • 我相信我可以;而不是 li.Attributes.Add ("style, "color:red") 我应该能够做 li.Attrinutes.Add ("class", "myDDL")。我的问题是在下拉菜单中显示的项目样式您从列表中选择一个项目,然后列表折叠,您只能看到所选项目。正在显示以用作所选项目的项目,我无法设置样式;不知道如何访问它。
  • 您是否缺少 ddl1.properties 中的“AutoPostback = true”属性?

标签: c# css asp.net .net-4.5 dropdown


【解决方案1】:

要使用纯 CSS 方式,请添加此 CSS

#ddl1>option:checked  {
  background-color: red;
}

在您的 C# 中,您可以添加并选择新选项。让我知道这是否需要改变方向

【讨论】:

  • 谢谢。这会将样式应用于所有下拉列表和任何选定的项目(这很好)。但我正在寻找的是:您展开下拉列表,选择一个项目,下拉列表折叠并且您选择的项目显示给用户。这是我要访问的项目。而且我不想对所有项目都这样做,只有当我手动附加到删除唐列表的项目被选中时(值为“0”)。
猜你喜欢
  • 2012-01-15
  • 2015-07-08
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多