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