无法使用jquery打开kendo网格的编辑弹出窗口

我正在为MVC页面上的kendo网格实现上下文菜单。 我试图通过单击上下文菜单调用我的kendo网格上的编辑按钮。 我已经在我的上下文菜单和事件编写的jquery代码上实现了事件来调用编辑按钮的click事件。 我确实看到窗口弹出一瞬间关闭。 我如何让这个工作

@(Html.Kendo().ContextMenu() .Name("menu") .Target("#GridTeam") .Filter("tr") .Orientation(ContextMenuOrientation.Vertical) .Animation(animation => { animation.Open(open => { open.Fade(FadeDirection.In); open.Duration(500); }); }) .Items(items => { items.Add() .Text("Edit"); items.Add() .Text("Delete"); }) .Events(e => { e.Select("onEdit"); }) ) function onEdit(e) { //Logic to be executed on Edit event $('ak-grid-edit').click(); 

您可以使用addRoweditRowremoveRow

模型

 public class ViewModel { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } } 

视图

  @(Html.Kendo().Grid() .Name("GridTeam") .Columns(columns => { columns.Command(command => { command.Edit(); command.Destroy(); }); columns.Bound(d => d.Name).Title("Name"); columns.Bound(d => d.Description).Title("Description"); }) .Editable(editable => editable.Mode(GridEditMode.PopUp)) .DataSource(dataSource => dataSource .Ajax() .Model(model => model.Id(d => d.Id)) .Read(read => read.Action("Data_Read", "Home")) .Update(update => update.Action("Data_Update", "Home")) .Destroy(update => update.Action("Data_Destroy", "Home"))) ) @(Html.Kendo().ContextMenu() .Name("menu") .Target("#GridTeam") .Filter("tr") .Orientation(ContextMenuOrientation.Vertical) .Animation(animation => { animation.Open(open => { open.Fade(FadeDirection.In); open.Duration(500); }); }) .Items(items => { items.Add().Text("Add"); items.Add().Text("Edit"); items.Add().Text("Delete"); }) .Events(e => e.Select("onSelect")) ) 

调节器

 public class HomeController : Controller { public ActionResult Index() { return View(); } public ActionResult Data_Read([DataSourceRequest] DataSourceRequest request) { return Json(_models.ToDataSourceResult(request)); } [HttpPost] public ActionResult Data_Update([DataSourceRequest] DataSourceRequest request, ViewModel viewModel) { var model = _models.FirstOrDefault(x => x.Id == viewModel.Id); if (model != null) { model.Name = viewModel.Name; model.Description = viewModel.Description; } return Json(ModelState.IsValid ? new object() : ModelState.ToDataSourceResult()); } [HttpPost] public ActionResult Data_Destroy([DataSourceRequest] DataSourceRequest request, ViewModel viewModel) { _models.Remove(_models.First(x => x.Id == viewModel.Id)); return Json(new[] {_models}.ToDataSourceResult(request, ModelState)); } // Created as static to simulate data from database private static List _models = new List { new ViewModel {Id = 1, Name = "One", Description = "One Hundred"}, new ViewModel {Id = 2, Name = "Two", Description = "Two Hundreds"}, new ViewModel {Id = 3, Name = "Three", Description = "Three Hundreds"}, }; } 

屏幕截图

在此处输入图像描述

这应该工作。 首先,你得到你的网格实例。 然后从上下文菜单事件中找到单击的行。 然后将该行置于编辑模式。

 function onEdit(e) { //Logic to be executed on Edit event var grid = $("#GridTeam").data("kendoGrid"); var model = e.target; grid.editRow(model) }