Ich verwende die Html.DropDownListFor()
, um ein Dropdown mit Daten aus einer Liste anzuzeigen. Die Listenelemente haben eine boolesche Eigenschaft namens IsPublic
, die definiert, ob dieses Element öffentlich ist oder nicht.Html.DropDownListFür die Gruppierung nach Bool - show string statt bool value
Hier ist, wie ich das Drop-down definieren:
@Html.DropDownListFor(m => m.SelectedLayout,
new SelectList(Model.Layout, "LayoutString", "LayoutName", "IsPublic", 1))
Wie Sie sehen können, bin ich von der Unterkunft Gruppierung IsPublic
.
Beachten Sie, wie die Gruppierung durch den Booleschen Wert durchgeführt wird (true
und false
): Wie erwartet, wird die Gruppierung die folgende Art und Weise, mit der folgenden Benennung der Gruppen erfolgt.
Gibt es eine Möglichkeit für mich, diese Gruppierung als eine benutzerdefinierte Zeichenfolge anzuzeigen, obwohl Gruppierung auf dem booleschen Wert? Also, wenn IsPublic == true
den Gruppierungsnamen als Public
anzeigen und umgekehrt IsPublic == false
Gruppierungsname anzeigen als Private
?
Sie können dies tun, indem Sie einen neuen 'SelectListGroup' Erstellen und seine' Name'-Eigenschaft, (basierend auf dem 'bool' Wert) und dann neue' SelectListItem' Erstellen und Einstellen der 'Group' Eigenschaft, wie beschrieben im zweiten Teil von [diese Antwort] (http://stackoverflow.com/questions/37151572/constructing-a-select-list-with-optgroup-groups/37152663#37152663). Sie haben das Modell nicht gezeigt oder welche Werte es enthalten könnte, also ein bisschen schwer, ein Codebeispiel zu geben –