Fondamentalement, je cherche à insérer un élément au début d'une SelectList avec la valeur par défaut de 0 et la valeur de texte de "- Sélectionnez un -"
Quelque chose comme
SelectList list = new SelectList(repository.func.ToList());
ListItem li = new ListItem(value, value);
list.items.add(li);
Cela peut-il être fait?
asp.net-mvc
selectlist
GEOCHET
la source
la source
SelectList
semble vraiment être juste une aide pour lier les données directement aux éléments. Si vous ajoutez des éléments manuellement, utilisez à laList<SelectListItem>
place.Réponses:
Il n'est vraiment pas nécessaire de le faire à moins que vous n'insistiez sur la valeur 0. L'extension HtmlHelper DropDownList vous permet de définir une étiquette d'option qui apparaît comme la valeur initiale dans la sélection avec une valeur nulle. Utilisez simplement l'une des signatures DropDownList qui a l'étiquette d'option.
la source
@Html.DropDownListFor( m => m.MenuSelection, (IEnumerable<SelectListItem>)ViewBag.Menu, "Select One", null )
par exemple, y compris la valeur nullhtmlAttributes
pour éviter toute confusion avec la signature qui prend une expression, l'énumération de menu et un objet (htmlAttributes).dataValueField
et ledataTestField
qui faisait que cela ne fonctionnait pas lors de l'ajout d'une valeur optionLabel. Cela aurait probablement pu fonctionner avec un peu plus d'efforts, mais je viens d'utiliser l'une des solutions alternatives. Merci quand même!J'ai fait fonctionner cela en remplissant un SelectListItem, en le convertissant en liste et en ajoutant une valeur à l'index 0.
la source
C'est possible.
la source
J'ai aimé la réponse de @ AshOoO mais comme @Rajan Rawal, j'avais besoin de conserver l'état de l'élément sélectionné, le cas échéant. J'ai donc ajouté ma personnalisation à sa méthode
AddFirstItem()
la source
Cela devrait faire ce dont vous avez besoin, envoyez simplement votre liste de sélection et elle renverra une liste de sélection avec un élément dans l'index 0
Vous pouvez personnaliser le texte, la valeur ou même l'index de l'élément que vous devez insérer
la source
Voici une aide html pour vous
la source
La méthode .ToList (). Insert (..) place un élément dans votre liste. N'importe quelle position peut être spécifiée. Après ToList, ajoutez simplement .Insert (0, "- - Premier élément - -")
Votre code
Nouveau code
la source
Cela peut ne pas sembler très élégant, mais je fais généralement quelque chose comme ceci:
la source
D'accord, j'aime le code propre, alors j'ai fait de cette méthode d'extension
Utilisation (par exemple):
la source
Comme cette option peut nécessiter de nombreuses manières différentes, je suis parvenu à la conclusion de développer un objet afin qu'il puisse être utilisé dans différents scénarios et dans de futurs projets
ajoutez d'abord cette classe à votre projet
Maintenant, dans Controller Action, vous pouvez faire comme ça
Et enfin dans View, vous coderez comme ça.
la source
Une solution consiste à utiliser la réponse de @ tvanfosson (la réponse sélectionnée) et à utiliser JQuery (ou Javascript) pour définir la valeur de l'option sur 0:
J'espère que cela t'aides.
la source
Essayez quelque chose comme le code suivant:
la source
Je ne sais pas si quelqu'un d'autre a une meilleure option ...
la source