【问题标题】:how do i put backcolor on a selectListItem我如何在 selectListItem 上放置背景颜色
【发布时间】:2010-09-02 11:04:41
【问题描述】:

我有一个 asp.net mvc 页面,我想要一个具有不同背景颜色的下拉列表like this page

我有以下代码来显示一个下拉列表

<label>Data Source: </label><% = Html.DropDownList("DataSource", Model.CalendarDataSources, new { @id = "calendarDSDropdown", @class = "calendarDSDropdown" })%>

在我的视图模型中我有:

    public IEnumerable<SelectListItem> CalendarDataSources;

我在服务器上填充。我想为每个 SelectListItem 添加不同的积压,但我看不到如何做到这一点,因为选择列表项只有 Name, Id, Selected 属性

这可能吗

【问题讨论】:

    标签: asp.net-mvc selectlistitem


    【解决方案1】:

    不幸的是,内置的DropDownList 助手不允许您在生成的option 标记上设置style 属性。你将不得不滚动你自己的助手来实现这一点。

    您也可以使用 jQuery 来设置颜色:

    $(function() {
        $('select#DataSource option').each(function() {
            var option = $(this);
            option.css(
                'background-color', 
                someFunctionThatMapsTheOptionValueToAColor(option.val())
            );
        });
    });
    

    【讨论】:

    • 问题是我希望每个项目都有不同的颜色(我在服务器上知道)
    • 是的,但您也知道服务器上每个项目的值。因此,您可以在我的 jQuery 示例中使用的值和颜色之间动态生成映射函数。如果没有,您将不得不实现自己的 html 助手。
    • 是的,我认为自定义助手看起来更直接,但感谢您的两个建议
    猜你喜欢
    • 1970-01-01
    • 2014-01-27
    • 2011-05-27
    • 1970-01-01
    • 2011-11-11
    • 2020-01-25
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多