我有以下要求。我有一個下拉顯示機器零件。活動屬性設置爲「false」的部分應以粗體紅色文本顯示,而其他部分則以正常文本顯示。ASP MVC 3:如何將樣式應用於某些下拉菜單中的某些項目?
問題是,SelectItem類沒有htmlproperty來設置這個,只有下拉幫助器,但是應用於整個列表,我只是想要這些項目。
我有以下要求。我有一個下拉顯示機器零件。活動屬性設置爲「false」的部分應以粗體紅色文本顯示,而其他部分則以正常文本顯示。ASP MVC 3:如何將樣式應用於某些下拉菜單中的某些項目?
問題是,SelectItem類沒有htmlproperty來設置這個,只有下拉幫助器,但是應用於整個列表,我只是想要這些項目。
前段時間我有這個要求。好消息是解決方案很簡單。壞消息是它涉及從MVC3源代碼複製/粘貼很多。
請找到代碼pasted here,因爲粘貼內聯真的太多了。
它由一個接口IHtmlAttributes
(對於可能攜帶此類數據的對象),類SelectListItemWithAttributes
(您將創建此類的對象)和一個靜態類組成,您將需要粘貼大量擴展方法。
執行此操作後,這是非常簡單的:
var item = new SelectListItemWithAttributes(new { @class = "inactive" });
item.Text = "Foo";
item.Value = "Bar";
你把所有這些到任何IEnumerable<SelectListItemWithAttributes>
,調用DropDownList
家庭粘貼到靜態輔助類的方法之一,這一切就是這麼簡單。
你可以很容易地使用jQuery實現這一目標:
<script type="text/javascript">
$(document).ready(function() {
$('#IdOfYourDropDown option:disabled').css('color', 'red');
});
</script>
它選擇的下拉,其將被禁用,並增加了一些內嵌樣式中的所有選項,你也可以,如果你想添加一個CSS類。