【问题标题】:Need color selected in asp dropdownlist需要在 asp 下拉列表中选择颜色
【发布时间】:2017-03-23 10:42:56
【问题描述】:

我有这个下拉列表。我需要在选择后显示颜色,如果可能的话,当悬停在项目上时,我需要透明选择而不是“蓝色”。

我需要这样的东西

 <asp:DropDownList ID="ddlTimlineStatus" runat="server" Width="50px" CssClass="DropDownListStyle">
                                                    <asp:ListItem Value="G" style="background-color:green; color:green;"></asp:ListItem> 
                                                    <asp:ListItem Value="Y" style="background-color:yellow; color:yellow;"></asp:ListItem> 
                                                    <asp:ListItem Value="R" style="background-color:red; color:red;"></asp:ListItem> 
                                                </asp:DropDownList>

这里选择了红色,但不知道为什么它没有出现。

在悬停时,您看到的蓝色实际上是红色,但当它被选中时,它显示为蓝色。

【问题讨论】:

  • 蓝色是这种情况下的默认颜色,它会出现在项目上悬停时,您可以在 css 中更改它们,只需放置 id 属性并根据它们的 id 设置 css。
    示例 - 将被渲染为
  • 在 Web 浏览器中执行“查看源代码”以查看输出的 html 以帮助了解正在发生的事情非常有用。有时 aspx 不会按假设呈现,并且您的样式标签可能未与正确的容器关联。

标签: c# css asp.net


【解决方案1】:

如果它在浏览器中呈现select 下拉菜单,那么您可以更改选择的background,但您将无法使用css 更改突出显示颜色(当您悬停时)! (适用于 Chrome 和其他 Webkit 浏览器)

您可能希望将 select 块更改为 ul, li 构造。

【讨论】:

  • 抱歉,回复晚了,我回来继续这个工作。把它改成 ul, li 构造是什么意思?
  • 无序列表的使用。检查此MDN artcile 以获取参考。
【解决方案2】:

这就是我解决它的方法。 aspx:

<asp:DropDownList ID="ddlOverallStatus" runat="server" AutoPostBack="true" OnLoad="ddlOverallStatus_Load"
                                                    CssClass="DropDownListStyleOverview" OnSelectedIndexChanged="ddlOverallStatus_SelectedIndexChanged" >
                                                    <asp:ListItem Value="0">Green</asp:ListItem>
                                                    <asp:ListItem Value="1">Yellow</asp:ListItem>
                                                    <asp:ListItem Value="2">Red</asp:ListItem>
                                                </asp:DropDownList>

后面的代码:

 protected void ddlOverallStatus_Load(object sender, EventArgs e)
    {
        ddlOverallStatus = setColor(ddlOverallStatus, false);
    }
    protected void ddlOverallStatus_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlOverallStatus = setColor(ddlOverallStatus, true);
    }
    protected DropDownList setColor(DropDownList ddl, bool load)
    {
        if (load)
        {
            string s1 = ddl.SelectedItem.Text.ToString();
            if (s1 == "Green")
                ddl.BackColor = System.Drawing.Color.FromArgb(0,255,0);
            else
                ddl.BackColor = System.Drawing.Color.FromName(s1);
        }
        else
        {
            string s1 = ddl.SelectedItem.Text.ToString();
            if (s1 == "Green")
            {
                ddl.BackColor = System.Drawing.Color.FromArgb(0, 255, 0);
                ddl.ForeColor = System.Drawing.Color.FromArgb(0, 255, 0);
            }
            else
            {
                ddl.BackColor = System.Drawing.Color.FromName(s1);
                ddl.ForeColor = System.Drawing.Color.FromName(s1);
            }
        }
        return ddl;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多