Grundsätzlich möchte ich ein Element am Anfang einer SelectList mit dem Standardwert 0 und dem Textwert "- Select One -" einfügen.
Etwas wie
SelectList list = new SelectList(repository.func.ToList());
ListItem li = new ListItem(value, value);
list.items.add(li);
Kann das gemacht werden?
asp.net-mvc
selectlist
GEOCHET
quelle
quelle
SelectList
scheint wirklich nur ein Helfer zu sein, um Daten direkt an Elemente zu binden. Wenn Sie Elemente manuell hinzufügen, verwenden SieList<SelectListItem>
stattdessen.Antworten:
Dies ist nur dann erforderlich, wenn Sie auf dem Wert 0 bestehen. Mit der Erweiterung HtmlHelper DropDownList können Sie eine Optionsbezeichnung festlegen, die als Anfangswert in der Auswahl mit einem Nullwert angezeigt wird. Verwenden Sie einfach eine der DropDownList-Signaturen mit der Optionsbezeichnung.
quelle
@Html.DropDownListFor( m => m.MenuSelection, (IEnumerable<SelectListItem>)ViewBag.Menu, "Select One", null )
zum Beispiel, einschließlich der NullhtmlAttributes
zu vermeiden , um Verwechslungen mit der Unterschrift Dazu gehören ein Ausdruck, die Menüaufzählung und ein Objekt (htmlAttributes).dataValueField
und das angeben,dataTestField
was dazu führte, dass dies beim Hinzufügen eines optionLabel-Werts nicht funktionierte. Es hätte wahrscheinlich mit etwas mehr Aufwand funktionieren können, aber ich habe nur eine der alternativen Lösungen verwendet. Trotzdem danke!Ich habe dies zum Laufen gebracht, indem ich ein SelectListItem aufgefüllt, in eine Liste konvertiert und einen Wert bei Index 0 hinzugefügt habe.
quelle
Das ist möglich.
quelle
Ich mochte die Antwort von @ AshOoO, aber wie @Rajan Rawal musste ich den ausgewählten Artikelstatus beibehalten, falls vorhanden. Also habe ich seine Anpassung zu seiner Methode hinzugefügt
AddFirstItem()
quelle
Dies sollte tun, was Sie brauchen, senden Sie einfach Ihre Auswahlliste und es wird eine Auswahlliste mit einem Element in Index 0 zurückgegeben
Sie können den Text, den Wert oder sogar den Index des Elements, das Sie einfügen möchten, anpassen
quelle
Hier HTML-Helfer für Sie
quelle
Die Methode .ToList (). Insert (..) fügt ein Element in Ihre Liste ein. Jede Position kann angegeben werden. Nach ToList fügen Sie einfach .Insert (0, "- - First Item - -") hinzu.
Dein Code
Neuer Code
quelle
Klingt vielleicht nicht sehr elegant, aber normalerweise mache ich so etwas:
quelle
Okay, ich mag sauberen Code, also habe ich dies zu einer Erweiterungsmethode gemacht
Verwendung (am Beispiel):
quelle
Da diese Option auf viele verschiedene Arten erforderlich sein kann, bin ich zu dem Schluss gekommen, ein Objekt so zu entwickeln, dass es in verschiedenen Szenarien und in zukünftigen Projekten verwendet werden kann
Fügen Sie diese Klasse zuerst Ihrem Projekt hinzu
In Controller Action können Sie dies jetzt tun
Und schließlich werden Sie in View so codieren.
quelle
Eine Problemumgehung besteht darin, die Antwort von @ tvanfosson (die ausgewählte Antwort) zu verwenden und mit JQuery (oder Javascript) den Wert der Option auf 0 zu setzen:
Hoffe das hilft.
quelle
Versuchen Sie so etwas wie den folgenden Code:
quelle
Ich nicht, wenn jemand anderes eine bessere Option hat ...
quelle