Est-il possible d’inclure une option vide par défaut (ou avec du texte) s’il n’y a pas de valeur sélectionnée pour une liste déroulante?
Le texte ci-dessous appenda ssortingng.Empty à la liste SelectList (ou IEnumerable) spécifiée dans l’élément ViewData [“Menu”]. Le MenuID
aura l’identifiant et le nom MenuID
.
<%= Html.DropDownList( "MenuID", (IEnumerable)ViewData["Menu"], ssortingng.Empty ) %>
Documentation: Méthode DropDownList
Par exemple:
Controller : private void InitScreenInfoCollate() { IEnumerable listbrd = ibrandRepository.GetItemsByUsercode(""); ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null); } View : @Html.DropDownList("Brands", null, ssortingng.Empty, new { @class = "form-control"})
Résultat :
Cette solution simple a fonctionné pour mon projet mvc5:
en vue:
@{ Model.ModelItemsList.Add(new ModelItem{ }); SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName"); }
Ajoutez simplement un nouvel élément à la List<>
vous souhaitez afficher dans votre vue. Dans mon cas, j’ai ajouté un “ModelItem” vide à ma List
. Étant donné que ModelItemID est un Guid, j’ai dû vérifier la présence de Guid.Empty dans ma méthode de contrôleur et faire du code. C’est tout.
La solution présentée ici a très bien fonctionné pour moi: http://forums.asp.net/t/1142484.aspx/1
L’idée de base est que vous définissez la propriété AppendDataBoundItems
de votre DropDownList
sur true
, puis vous placez un asp:ListItem
dans DropDownList
, qui deviendra votre élément par défaut avec tous les éléments de la firebase database venant après.