Je souhaite autoriser une liste déroulante à afficher les valeurs précédemment sélectionnées mais qui sont maintenant supprimées de la liste déroulante source. Au lieu d'afficher vide. La liste déroulante est dans une colonne de grille.DropDownList affiche la valeur vide si la valeur sélectionnée n'est pas dans la source
Grille:
...
columns.ForeignKey(p => p.CurrentCategory, @Model.LookupCategory, "CategoryName", "CategoryName").Width(160);
...
éditeur de modèle
@using System.Collections
@(
Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
.ValuePrimitive(true)
.AutoWidth(true)
)
Donc, pour expliquer plus en détail: La colonne CurrentCategory est une colonne de texte (et non une colonne id) et l'utilisateur peut sélectionnez à partir d'une liste d'éléments trouvés dans la LookupCategory. Toutefois, si un élément est supprimé de la classe Lookup, la valeur doit toujours être affichée dans les instances où l'utilisateur a déjà sélectionné cette valeur pour CurrentCategory.
Actuellement, si une ligne contient une valeur CurrentCategory qui ne figure pas dans la liste LookupCategory, elle est vide.
Peut-être que je dois utiliser un combobox à la place?
Merci, cela fonctionne. Est-il impossible d'éviter d'utiliser ViewData et de remplir directement à partir du modèle? – Reafidy
Je ne pense pas –