我有以下要求。我有一个下拉显示机器零件。将活动属性设置为“false”的部分应以粗体红色文本显示,而其他部分以常规文本显示。
问题是SelectItem类没有html属性来设置它,只有Dropdown助手,但是它应用于整个列表,我只想要一些项目。
答案 0 :(得分:2)
我刚才有这个要求。好消息是解决方案很简单。坏消息是它涉及从MVC3源复制/粘贴很多代码。
请找到代码pasted here,因为粘贴内联真的太多了。
它包含一个接口IHtmlAttributes
(对于可能携带此类数据的对象),类SelectListItemWithAttributes
(您将创建此类的对象),以及您需要的静态类粘贴很多扩展方法。
执行此操作后,它非常简单:
var item = new SelectListItemWithAttributes(new { @class = "inactive" });
item.Text = "Foo";
item.Value = "Bar";
您将所有这些放入任何IEnumerable<SelectListItemWithAttributes>
,调用粘贴到静态助手类中的DropDownList
方法系列之一,这就是它的所有内容。
答案 1 :(得分:-1)
您可以使用jquery轻松实现此目的:
<script type="text/javascript">
$(document).ready(function () {
$('#IdOfYourDropDown option:disabled').css('color', 'red');
});
</script>
它选择下拉列表中禁用的所有选项并添加一些内联样式,如果需要,还可以添加一个css类。