2011-09-16 1 views
1

私には次の要件があります。私は、その機械部品を表示するドロップダウンがあります。アクティブなプロパティが "false"に設定されているパーツは、太字の赤いテキストで表示され、その他は通常のテキストで表示されます。ASP MVC 3:ドロップダウンの項目の一部にスタイルを適用するにはどうすればいいですか?

問題は、SelectItemクラスには、これを設定するhtmlプロパティがなく、ドロップダウンヘルパーだけですが、それはリスト全体に適用されているため、いくつかの項目でこれをしたいだけです。

答えて

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クラスを追加することができます。

関連する問題