Lista rozwijana ASP.NET MVC z domyślną pustą opcją


Odpowiedzi:


130

Poniższe wstawi ciąg.Empty do SelectList (lub IEnumerable) określonej w elemencie ViewData ["Menu"]. Wybrany będzie miał identyfikator i nazwę MenuID.

<%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>

Dokumentacja: metoda DropDownList


13
Dzięki. Nazwa parametru optionLabel dla opcji domyślnej wyrzuciła mnie :)
James Newton-King

4
Rany ... ja też zacząłem pisać własną metodę pomocniczą ... nazwa śmieci IMHO - brzmi tak, jakby wyświetlała obok niej tag <label>.
Mr Grok

Należy pamiętać, że klucz ViewData musi być inny niż identyfikator DropDown-Id (w tym przykładzie „Menu”! = „MenuID”). W przeciwnym razie struktura nadpisuje listę rozwijaną, ignorując trzeci parametr.
Manuel Allenspach

Niesamowite! Naprawiłem też mój problem z select2.js.
gkonuralp

7

Na przykład:

    Controller :

    private void InitScreenInfoCollate()
    {   
        IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
        ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);

    }

    View :
    @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})

Wynik:

obraz w tekście


0

To proste rozwiązanie zadziałało w moim projekcie mvc5:

z uwagi:

@{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}

Po prostu dodaj nowy element do tego, List<>który chcesz wyświetlić w swoim widoku. W moim przypadku dodałem pusty „ModelItem” do mojego List<ModelItem> ModelItemList. Ponieważ mój ModelItemID jest Guid, musiałem sprawdzić Guid.Empty w mojej metodzie kontrolera i zrobić kod. To wszystko.


-8

Przedstawione tutaj rozwiązanie działało u mnie bardzo dobrze: http://forums.asp.net/t/1142484.aspx/1

Podstawowa idea polega na tym, że ustawiasz AppendDataBoundItemswłaściwość swojego elementu DropDownListto, truea następnie umieszczasz asp:ListItemw DropDownListnim znak, który stanie się elementem domyślnym, a po nim pojawią się wszystkie elementy związane z danymi.


4
-1Dotyczy to formularzy sieci Web ASP.NET, a nie MVC.
JoeBrockhaus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.