Jquery 按update后添加项目时剑道网格内联编辑未触发事件

Jquery 按update后添加项目时剑道网格内联编辑未触发事件,jquery,asp.net-mvc,kendo-ui,telerik,kendo-grid,Jquery,Asp.net Mvc,Kendo Ui,Telerik,Kendo Grid,由于某些原因,在剑道网格中以内联编辑模式添加项目时,更新事件不会触发。我一直在阅读文档,并尽可能地实现代码。我也一直在监视firebug,控制台从未显示任何活动。代码运行良好,但我的代码不起作用 在编辑或从网格中删除项目时,它可以完美地工作,但在创建项目时,没有任何工作,也没有任何活动。问题可能是GroupID尚未声明Guid,因此网格不会触发事件?(我完全凭空猜测,我不知所措) 我的剃须刀代码: @(Html.Kendo().Grid<GroupViewModel>() .Na

由于某些原因,在剑道网格中以内联编辑模式添加项目时,更新事件不会触发。我一直在阅读文档,并尽可能地实现代码。我也一直在监视firebug,控制台从未显示任何活动。代码运行良好,但我的代码不起作用

在编辑或从网格中删除项目时,它可以完美地工作,但在创建项目时,没有任何工作,也没有任何活动。问题可能是GroupID尚未声明Guid,因此网格不会触发事件?(我完全凭空猜测,我不知所措)

我的剃须刀代码:

@(Html.Kendo().Grid<GroupViewModel>()
  .Name("GroupGrid")
  .Columns(columns =>
      {
          columns.Bound(c => c.GroupID).Hidden();
          columns.Bound(c => c.Name);
          columns.Bound(e => e.FK_CategoryID).EditorTemplateName("CategoriesList").Title("Category").ClientTemplate("#:CatName#");
          columns.Command(command => { command.Edit(); command.Destroy(); }).Width(170);
      })
  .HtmlAttributes(new { style = "width: 500px;" })
  .ToolBar(toolbar => toolbar.Create())
  .Editable(editable => editable.Mode(GridEditMode.InLine))
  .Scrollable(s => s.Enabled(false))
  .Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single))
  .DataSource(dataSource => dataSource
                                .Ajax()
                                .Read(read => read.Action("Group_Grid_Read", "Home"))
                                .Events(events => events.Error("error_handler"))
                                .Model(model => model.Id(p => p.GroupID))
                                .Create(update => update.Action("EditingInline_Create", "Home"))
                                .Update(update => update.Action("EditingInline_Update", "Home"))
                                .Destroy(update => update.Action("EditingInline_Destroy", "Home"))
  )
  .Events(e => e.Change("onGroupGridChange").Save("GroupGrid_Save"))
)
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditingInline_Create([DataSourceRequest] DataSourceRequest request, GroupViewModel groupViewModel)
{
    if (groupViewModel != null && ModelState.IsValid)
    {
        // add group
        // abbreviated
    }

    return Json(new[] { groupViewModel }.ToDataSourceResult(request, ModelState));
}
public class GroupViewModel
{
    public Guid GroupID { get; set; }
    public string Name { get; set; }
    public Guid? FK_CategoryID { get; set; }
    public string CatName { get; set; }
}
我的视图模型:

@(Html.Kendo().Grid<GroupViewModel>()
  .Name("GroupGrid")
  .Columns(columns =>
      {
          columns.Bound(c => c.GroupID).Hidden();
          columns.Bound(c => c.Name);
          columns.Bound(e => e.FK_CategoryID).EditorTemplateName("CategoriesList").Title("Category").ClientTemplate("#:CatName#");
          columns.Command(command => { command.Edit(); command.Destroy(); }).Width(170);
      })
  .HtmlAttributes(new { style = "width: 500px;" })
  .ToolBar(toolbar => toolbar.Create())
  .Editable(editable => editable.Mode(GridEditMode.InLine))
  .Scrollable(s => s.Enabled(false))
  .Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single))
  .DataSource(dataSource => dataSource
                                .Ajax()
                                .Read(read => read.Action("Group_Grid_Read", "Home"))
                                .Events(events => events.Error("error_handler"))
                                .Model(model => model.Id(p => p.GroupID))
                                .Create(update => update.Action("EditingInline_Create", "Home"))
                                .Update(update => update.Action("EditingInline_Update", "Home"))
                                .Destroy(update => update.Action("EditingInline_Destroy", "Home"))
  )
  .Events(e => e.Change("onGroupGridChange").Save("GroupGrid_Save"))
)
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditingInline_Create([DataSourceRequest] DataSourceRequest request, GroupViewModel groupViewModel)
{
    if (groupViewModel != null && ModelState.IsValid)
    {
        // add group
        // abbreviated
    }

    return Json(new[] { groupViewModel }.ToDataSourceResult(request, ModelState));
}
public class GroupViewModel
{
    public Guid GroupID { get; set; }
    public string Name { get; set; }
    public Guid? FK_CategoryID { get; set; }
    public string CatName { get; set; }
}
####编辑####

我想我偶然发现了什么。我更改了列绑定以包括所有四列,而不是隐藏它们。这样做时,我可以填充所有四个字段。在这样做之后,事件最终被触发

现在我有另一个关于GroupID Guid的问题。由于我希望隐藏GroupID和CatName变量,在单击“添加新记录”按钮后,如何用“新Guid()”填充GroupID,用“新字符串()”填充CatName

问题似乎在于新记录的验证

.Columns(columns =>
{
    columns.Bound(c => c.GroupID);
    columns.Bound(c => c.Name);
    columns.Bound(e => e.FK_CategoryID).EditorTemplateName("CategoriesList").ClientTemplate("#:CatName#");
    columns.Bound(c => c.CatName);
    columns.Command(command => { command.Edit(); command.Destroy(); }).Width(170);
})

您可以隐藏GroupID和CatName,并在Kendo Grid调用dataSource..parameterMap期间提供值

通过向dataSource.transport.parameterMap提供处理程序,可以在将数据发送到控制器之前修改新添加行的字段。例如:


$(“#GroupGrid”).data(“kendoGrid”).dataSource.transport.parameterMap=函数(数据,操作){
for(data.models中的var i){
data.models[i].GroupID=new GUID();
data.models[i].CatName=“Doge”;
}
};

由于某种原因,我仍然收到验证错误。parameterMap的函数从未被调用。