Czy istnieje sposób na dołączenie domyślnej pustej opcji (lub z tekstem), jeśli nie ma wybranej wartości na liście rozwijanej?
Czy istnieje sposób na dołączenie domyślnej pustej opcji (lub z tekstem), jeśli nie ma wybranej wartości na liście rozwijanej?
Odpowiedzi:
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
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:
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.
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 AppendDataBoundItems
właściwość swojego elementu DropDownList
to, true
a następnie umieszczasz asp:ListItem
w DropDownList
nim znak, który stanie się elementem domyślnym, a po nim pojawią się wszystkie elementy związane z danymi.
-1
Dotyczy to formularzy sieci Web ASP.NET, a nie MVC.