I developed a Kendo MVC Grid which displays a pop-up for updates. Popup Edit screen is a Custom template with a dropdown list that calls the controller to populate the . In this case, I am populating the prefixes. The is populated fine, but when I click on a row on the grid to edit an item, I need to pre-select the value in the drop-down. let's say if a particular row has a value of "Mr." as a prefix, I need it to be pre-selected in the popup .
If the use of a @Html.EditorFor(model => model.Prefix), it perfectly populates the editor fine. This doesn't work for Dropdown.
The editor template is called MemberEdit and the code in it is as below:
01.@model Aamva.Api.Common.WebSite.Models.WebUser02. <div class="col-lg-2">03. @Html.LabelFor(model => model.Prefix)04. @*@Html.EditorFor(model => model.Prefix)*@05. @(Html.Kendo().DropDownList()06. .Name("ddlPrefix")07. .DataTextField("Prefix")08. .DataValueField("PrefixKey")09. .DataSource(source =>10. {11. source.Read(read =>12. {13. read.Action("ListCustomerPrefix", "Home"); //.Data("additionalPrefixData");14. })15. .ServerFiltering(true);16. })17. // .Text(Model.Prefix)18. .Value(Model.PrefixKey)19. .AutoBind(false)20. .HtmlAttributes(new { style = "width: 100%" })21. )22. </div>23. <div class="col-lg-2">24. @Html.LabelFor(model => model.FirstName)25. @Html.EditorFor(model => model.FirstName)26. @Html.ValidationMessageFor(model => model.FirstName)27. </div>
The Grid code is as shown below:
01.@(Html.Kendo().Grid<Aamva.Api.Common.WebSite.Models.WebUser>()02. .Name("membersGrid")03. .Columns(columns =>04. {05. columns.Command(command => { command.Edit(); command.Destroy().Text("EZ Del"); }).Width("15%");06. columns.Bound(p => p.CST_KEY).Visible(false);07. columns.Bound(p => p.FullName).Width("20%").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").SuggestionOperator(FilterType.Contains)));08. columns.Bound(p => p.Role).Width("25%").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").SuggestionOperator(FilterType.Contains)));09. columns.Bound(p => p.Title).Width("20%").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").SuggestionOperator(FilterType.Contains)));10. columns.Bound(p => p.EmailAddress).Width("20%").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").SuggestionOperator(FilterType.Contains)));11. columns.Bound(p => p.Prefix).Visible(false);12. columns.Bound(p => p.Suffix).Visible(false);13. columns.Bound(p => p.RoleKey).Visible(false);14. columns.Bound(p => p.OrganizationMemberKey).Visible(false);15. }).Filterable(filterable => filterable17. .Extra(false)18. .Operators(ops => ops19. .ForString(str => str.Clear()20. .Contains("Contains")21. .StartsWith("Starts With")22. .IsEqualTo("Is Equal To")23. .IsNotEqualTo("Is Not Equal To")24. )))25. .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("MemberEdit").Window(w => w.Title("Edit Employee").Width(1100)))26. .Pageable(pager => pager.AlwaysVisible(false).PageSizes(new List<object> { 5, 10, 15, 20 }))27. .Sortable()28. .Filterable(ftb => ftb.Mode(GridFilterMode.Row))29. .HtmlAttributes(new { style = "width:100%;" })30. .DataSource(dataSource => dataSource31. .Ajax()32. .PageSize(10)33. .Events(events => events.Error("error_handler"))34. .Model(model => model.Id(p => p.CST_KEY))35. .Read(read => read.Action("ListMembers", "Home"))36. .Update(update => update.Action("EditingPopup_Update", "Home"))37. .Model(model =>38. {39. 40. model.Field(m => m.Title);41. model.Field(m => m.Prefix);42. model.Field(m => m.PrefixKey);43. model.Field(m => m.Suffix);44. model.Field(m => m.FirstName);45. model.Field(m => m.MiddleName);46. model.Field(m => m.LastName);47. model.Field(m => m.OrganizationKey);48. model.Field(m => m.FullName);49. model.Field(m => m.CustomerId);50. model.Field(m => m.OrganizationMemberKey);51. model.Field(m => m.EmailAddress);52. model.Field(m => m.CST_KEY);53. model.Field(m => m.Role);54. model.Field(m => m.RoleKey);55. model.Field(m => m.RoleList).DefaultValue(new List<Aamva.Api.Common.WebSite.Models.WebUserRole>());56. }57. )58. )59.)The Model is as below:
01.public class WebUser02.{03. public string CST_KEY { get; set; }04. public string EmailAddress { get; set; }05. public string Prefix { get; set; }06. public string PrefixKey { get; set; }07. public string Suffix { get; set; }08. public string Title { get; set; }09. public string FirstName { get; set; }10. public string MiddleName { get; set; }11. public string LastName { get; set; }12. public string OrganizationKey { get; set; }13. public string Role { get; set; }14. public string RoleKey { get; set; }15. public List<WebUserRole> RoleList { get; set; }16.}17. public class WebUserPrefix20.{21. public string PrefixKey { get; set; }22. public string Prefix { get; set; }23.}
