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?
Réponses
Trop de publicités? Le texte ci-dessous préfixera string.Empty à la liste SelectList (ou IEnumerable) spécifiée dans l'élément ViewData ["Menu"]. La sélection aura id et nom MenuID
.
<%= Html.DropDownList( "MenuID",
(IEnumerable<SelectListItem>)ViewData["Menu"],
string.Empty ) %>
Documentation: méthode DropDownList
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 au List<>
vous souhaitez afficher dans votre affichage. Dans mon cas, j'ai ajouté un "ModelItem" vide à mon List<ModelItem> ModelItemList
. Puisque ModelItemID est un Guid, je devais vérifier Guid.Empty dans ma méthode de contrôleur et créer 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éfinissiez la propriété AppendDataBoundItems
de votre DropDownList
à true
et que vous mettiez ensuite un asp:ListItem
dans le DropDownList
et cela deviendra votre élément par défaut, suivi de tous les éléments liés aux données.