2016-05-30 34 views
1

Html.DropDownListFor()を使用して、リストからのデータを含むドロップダウンを表示しています。リストアイテムにはIsPublicというブール値プロパティがあり、このアイテムがパブリックかどうかを定義します。あなたが見ることができるように、私はプロパティIsPublicによってグループ化していますHtml.DropDownList boolによるグループ化 - bool値の代わりに文字列を表示

@Html.DropDownListFor(m => m.SelectedLayout, 
        new SelectList(Model.Layout, "LayoutString", "LayoutName", "IsPublic", 1)) 

:ここ

は、私がドロップダウンを定義する方法です。グループ分けは、ブール値(truefalse)によってどのように行われるか

enter image description here

お知らせ:予想通り、グループ分けは、グループの以下の命名で、次のように行われます。

このグループをカスタム文字列として表示する方法はありますか?まだブール値をグループ化していますか?したがって、IsPublic == trueにグループ化名をPublic、その逆の場合にはIsPublic == falseと表示グループ名をPrivateと表示すると、

+0

あなたは新しい 'SelectListGroup'を作成し、(' bool'値に基づいて)その 'NAME'プロパティを設定して、説明したように、新しい' SelectListItem'を作成し、 'Group'プロパティを設定することによってこれを行うことができます[この回答](http://stackoverflow.com/questions/37151572/constructing-a-select-list-with-optgroup-groups/37152663#37152663)の第2部にあります。あなたはモデルを表示していないか、それとも価値がどれくらいのものが含まれているので、コードを書くのが少し難しいです –

答えて

2

クラス内でget onlyプロパティを使用してグループ化することができます。

public string DisplayPublic { 
    get { return IsPublic ? "Public" : "Private"; } 
} 
+0

もちろんこれは解決策です。これは魅力のように機能します!助けを感謝します! – Detilium

関連する問題