【问题标题】:Save changes in Kendo Grid without closing the popup window, but update the model在 Kendo Grid 中保存更改而不关闭弹出窗口,但更新模型
【发布时间】: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。换句话说,我想要一个更新的模型。

如果重要或您想提出任何解决方法,在编辑器模板中,我有另一个网格,我想设置该网格的 readcreate 数据。

@(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


【解决方案1】:

好的,我通过使用全局变量并将其值设置为dataBinding 来解决这个问题。所以主网格的SaveChanges处理程序是:

function masterGridSaveChanges(e) {
    var grid = e.sender;
    grid.bind("dataBinding", function (e) {
        e.preventDefault();
        setId(e.items[0].LiIdH);
    })
}

插入的项目总是items中的第一个,至少我希望如此!他们say 也必须有e.index,但我的总是undefined

在这种情况下,我在编辑器模板中创建了一个 setter,而不是全局 var

function setHeadId(value) {
    $("#Id").val(value);
}

应用的其余部分保持不变。

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多