Почему шаблон списка DropDown примера kendo ui для ASP.NET MVC 5 работает неправильно?
Я использую шаблон раскрывающегося списка для kendo ui Grid. Этот пример был для ASP.NET MVC, но при нажатии на раскрывающееся меню отображаются идентификатор и имя, которые не раскрываются. Я скопировал и заменил код, но вместо выпадающего меню отображаются ввод идентификатора и ввод имени. ссылка на этот пример: https://demos.telerik.com/aspnet-mvc/grid/editing-custom
мой edit_custom.cshtml:
@using Microsoft.AspNet.Identity.EntityFramework;
@using UserManagerSample.KendoDropDown.KendoDropViewModel;
@using Kendo.Mvc.UI
<script
src="http://cdn.kendostatic.com/2013.3.1119/js/kendo.aspnetmvc.min.js">
</script>
@(Html.Kendo().Grid<ProductViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName);
columns.Bound(p =>
p.Category).ClientTemplate("#=Category.CategoryName#").Width(180);
columns.Bound(p => p.UnitPrice).Width(130);
columns.Command(command => command.Destroy()).Width(150);
})
.ToolBar(toolBar =>
{
toolBar.Create();
toolBar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.HtmlAttributes(new { style = "height:550px;" })
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.Model(model =>
{
model.Id(p => p.ProductID);
model.Field(p => p.ProductID).Editable(false);
model.Field(p => p.Category).DefaultValue(
ViewData["defaultCategory"] as CategoryViewModel);
})
.PageSize(20)
.Read(read => read.Action("EditingCustom_Read", "Grid"))
.Create(create => create.Action("EditingCustom_Create", "Grid"))
.Update(update => update.Action("EditingCustom_Update", "Grid"))
.Destroy(destroy => destroy.Action("EditingCustom_Destroy", "Grid"))
)
)
и мой ClintCategory.cshtml:
@using UserManagerSample.KendoDropDown.KendoDropViewModel;
@using Kendo.Mvc.UI;
@model CategoryViewModel
@(Html.Kendo().DropDownListFor(m => m)
.DataValueField("CategoryID")
.DataTextField("CategoryName")
.BindTo((System.Collections.IEnumerable)ViewData["categories"])
)
это изображение моего окончательного вида: https://imgur.com/a/5gVX6f2
заранее спасибо
1 ответ
1-Создайте папку в представлении /shared/EditTemplates и измените ее имя на EditTemplates. 2-Скопируйте ClintCategory.cshtml в EditTemplates. 3-Добавьте EditorTemplateName("ClintCategory")columns.Bound(p =>
p.Category).ClientTemplate("#=Category.CategoryName#").EditorTemplateName("ClintCategory").Width(180)
и измените ClintCategory.cshtml
@(Html.Kendo().DropDownListFor(m => m.CategoryName)
.DataValueField("CategoryID")
.DataTextField("CategoryName")
.BindTo((System.Collections.IEnumerable)ViewData["categories"])
)
Беги и наслаждайся:)