Mise à jour de Kendo de la grille avec l'éditeur dropdownlist valeur
J'ai un Kendo de la grille de jeu:
@(Html.Kendo().Grid<ParticipatingDentalEE>()
.Name("DentalEE")
.Columns(columns =>
{
columns.Bound(p => p.State).Title("State").Width(150).EditorTemplateName("State");
columns.Bound(p => p.Count).Title("Count").Width(150);
columns.Command(c => { c.Edit(); c.Destroy(); });
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(m => {
m.Id(p => p.State);
m.Field(p => p.State).Editable(true);
m.Field(p => p.Count).Editable(true).DefaultValue("");
})
.Create(update => update.Action("EditingInline_Create", "Dental"))
.Read(read => read.Action("EditingInline_Read", "Dental"))
.Update(update => update.Action("EditingInline_Update", "Dental"))
.Destroy(update => update.Action("EditingInline_Destroy", "Dental"))
)
//.Scrollable()
//.Sortable()
.Editable(e => e.Mode(GridEditMode.InLine))
)
La colonne "Etat" se compose d'une liste déroulante modèle qui ressemble à ceci:
@(Html.Kendo().DropDownList()
.Name("States") //Name of the widget should be the same as the name of the property
.DataValueField("CODE") //The value of the dropdown is taken from the EmployeeID property
.DataTextField("NAME") //The text of the items is taken from the EmployeeName property
.BindTo((System.Collections.IEnumerable)ViewData["States"]) //A list of all employees which is populated in the controller
)
Ma liste déroulante s'affiche correctement lorsque j'modifier ou créer un article, mais quand j'ai enregistrer l'élément de la liste déroulante la valeur n'est pas rester dans la grille. Est-il autre chose que je dois mettre en place pour ce faire?
OriginalL'auteur Goose | 2013-08-15
Vous devez vous connecter pour publier un commentaire.
comme vous le dites dans votre commentaire,
qui est-à-dire, il doit correspondre au nom de la colonne, et le nom de colonne "État" et non des "États".
J'ai cette fonctionnalité fonctionne, mais quand j'entre dans le mode de l'éditeur, la dropdownlist par défaut est le premier élément dans le ViewBag la collection, et non la valeur réelle, de sorte qu'une mise à jour accidentelle peut se produire si l'utilisateur n'a pas à modifier manuellement la liste déroulante pour ce qui est quoi déjà? Savez-vous comment je peux gérer ce scénario, ou même utiliser la source de données.lu sur la liste déroulante au lieu de ViewBag
OriginalL'auteur Elroy Flynn
Évidemment, c'est un vieux thread, cependant la solution est d'utiliser le DropDownListFor méthode (par opposition à la DropDownList) et de ne pas spécifier un nom. Je soupçonne le Kendo n'intérieur d'une correspondance de nom pour appliquer la valeur éditée en arrière pour le modèle.
OriginalL'auteur mindlessgoods
Je ne sais pas si cela va résoudre ton problème, mais l'éditeur de modèles pour mon grille de ne pas fonctionner correctement jusqu'à ce que j'avais mis de la
UIHint
décorateur dans le modèle, et laEditorTemplateName
dans la vue.E. g.
Je pense que
UIHint
est utilisé pour la grille de 'voir' mode, tandis que lesEditorTemplateName
est utilisé alors que dans "edit mode", et les deux sont nécessaires pour relier les deux ensemble.OriginalL'auteur Hannele