J'ai une source de données qui me donne un IEnumerable<SelectListItem>
Le texte de chaque selectListItem est en majuscules. Je voudrais trouver la façon la plus simple de les changer pour les cas appropriés sans vraiment changer la source de données.Convertissez le champ de texte de tous les SelectListItems dans une liste SelectList en
Répondre
Je pense que la meilleure réponse pourrait être de convertir votre Enumerable en SelectListItems avant de passer à votre vue, et en convertissant le cas en TitleCase alors. Certains code faux pour vous:
Compte tenu de cette DataSource:
EnumerableItems = new List<string>() { "ITEM ONE", "ITEM TWO" };
je sur mon ViewModel:
public string BoundValue { get; set; }
public IEnumerable<SelectListItem> SelectListItems { get; set; }
Je mets les SelectListItems comme ceci:
viewModel.SelectListItems = from e in EnumerableItems
select new SelectListItem
{
Selected = e == dto.BoundValue,
Text = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(e.ToLower()),
Value = e
};
En mon point de vue quelque chose comme:
@Html.DropDownList("BoundValue", new SelectList(Model.SelectListItems, "Value", "Text"), "-- select --")
Et je reçois ceci:
En théorie, je pense que vous pouvez également changer le cas dans la vue en appelant le ToTileCase où l'argument « Texte » est, mais ce serait moins propre que je pense .
EDIT: Je modifié le code pour la création du SelectListItem d'avoir la valeur restent en majuscules (comme e, au lieu de e.ToTitleCase()) - puisque je suppose que cela va se lier à votre source de données d'origine en fin de compte :)
Bon, dans le but de fournir un peu de direction. Si vous possédez la classe est chaque élément de liste que vous avez une option. Remplacer la méthode ToString()
. Comme cela peut-être:
public override string ToString()
{
// here is a really primitive algorithm
return string.Format("{0}{1}",
this.DisplayProperty.Take(1),
this.DisplayProperty.Substring(1).ToLower());
}
Cependant, si vous ne possédez pas la classe qui est chaque élément de la liste que vous êtes assez coincé parce que vous ne voulez pas modifier la source de données.
- 1. Obtenir SelectListItems de MultiSelectList de SelectList
- 2. Problème avec ASP.Net MVC SelectLIst et List <SelectListItems>
- 3. Définir un champ de texte personnalisé dans SelectList
- 4. Valeur de texte d'affichage mvc Asp à partir du champ id dans une liste SelectList
- 5. Collection de SelectListitems uniques de la liste des SelectListitems non uniques en utilisant LINQ
- 6. Utilisation de Html.DropDownListFor() avec une liste SelectList
- 7. soumettez la date par le bouton de liste et convertissez cela en champ de date/heure
- 8. Comment combiner deux champs dans une description de texte SelectList?
- 9. Ajout d'un champ de texte de données supplémentaire dans SelectList dans MVC
- 10. convertir le champ de texte en Liste (texte) drupal 7
- 11. Obtenir TOUS les éléments d'une liste SelectList dans le contrôleur ASP.NET MVC
- 12. HtmlHelper dropdownlist SelectList Liste <selectlist>
- 13. Liste l'historique du champ de texte en tapant sur le champ dans une application Eclipse RCP
- 14. Convertissez la carte en Liste Triée
- 15. asp.net mvc selectlist - champ à dictionnaire
- 16. champ de texte avec liste déroulante dans les rails
- 17. Vérifiez si le texte apparaît sur la propriété de texte de tout élément dans SelectList
- 18. Convertissez le texte EditText en un indice. - Android
- 19. Multipliez le champ de liste déroulante par le champ de texte en Javascript
- 20. Modifier le contenu de SelectList
- 21. Articles SelectList en retrait
- 22. texte dans le champ de texte
- 23. Comment changer le champ de texte dans la liste déroulante?
- 24. Liste de tous les langages de programmation dans le champ de sélection
- 25. SelectList dans une boucle foreach
- 26. liste de tous les amis
- 27. Convertissez System.Drawing.Image en System.Windows.Controls.Image?
- 28. valeur sélectionnée pas définie dans une liste déroulante d'une SelectList
- 29. Convertissez 'System.Dynamic.DynamicObject en System.Collections.IEnumerable
- 30. Conserver les données saisies dans le champ de texte
Possédez-vous la classe qui représente chacun des éléments? –