【发布时间】:2015-07-12 07:38:37
【问题描述】:
在 Kendo Grid 的编辑器模板中,我想在某个事件被触发时保存更改。我想保持窗口打开,以便用户可以继续更新其他字段。我将修改后的代码保存在编辑器模板中:
function innerGridEditEvent(e) {
var model = e.model;
if (!model.isNew)
return;
var Id = parseInt($("#Id").val(), 10);
if (!Id) {
var masterGrid = $("#masterGrid").data('kendoGrid');
masterGrid.saveChanges();
}
}
我通过在主网格的SaveChanges 事件上使用此函数来保持弹出窗口打开。
function masterSaveChanges(e) {
var grid = e.sender;
grid.bind("dataBinding", function (e) {
e.preventDefault();
})
}
它工作正常,但我需要新创建的Id。换句话说,我想要一个更新的模型。
如果重要或您想提出任何解决方法,在编辑器模板中,我有另一个网格,我想设置该网格的 read 和 create 数据。
@(Html.Kendo().Grid< >()
.Name("InnerGrid")
.Columns(columns =>
{
....
})
.ToolBar(toolbar =>
{
toolbar.Create();
})
.DataSource(ds => ds
.Ajax()
....
.Read(r => r.Action(" ", " ").Data("getId"))
.Create(c => c.Action(" ", " ").Data("getId"))
)
.Events(e => e.Edit("innerGridEditEvent"))
)
我将所需的 ID 保留为隐藏字段,getId 事件会返回它。
function getHeadId(e) {
var id = $("#Id").val();
return { Id: id };
}
....
@Html.HiddenFor(x => x.Id)
【问题讨论】:
-
我想我在这里遗漏了一些东西。为什么要更新模型只是为了更新一个id。 id 不是一个字段吗?
-
ID 是一个字段,但它是 0,直到我插入记录并获取新 ID。我不想更新模型,我想插入它们。如果 Id 已经设置好了,我不需要做任何其他事情。
-
作为这个问题的一部分:如何从弹出窗口中获取发件人网格?我想改进
innerGridEditEvent功能。它目前正在使用硬编码值。
标签: kendo-ui kendo-grid kendo-asp.net-mvc