gpt4 book ai didi

kendo-ui - 如何确定在 javascript 中调用 (Kendo) grid.SaveChanges() 后是否存在验证错误

转载 作者:行者123 更新时间:2023-12-02 03:46:58 28 4
gpt4 key购买 nike

我在我的 javascript 函数中调用了 grid.SaveChanges()。网格正在使用内联编辑模式。

我的问题是,如果有一些客户端 端验证错误,例如无效的日期格式,那么我不能执行某些 DOM 操作。不幸的是 grid.SaveChanges() 没有返回值,在网格文档页面中搜索关键字“valid”也没有结果。 ( Teleport to Kendo Grid API documentation )

那么:我如何确定在 SaveChanges() 之后是否存在验证错误或数据是否已成功与持久存储同步?

提前致谢

最佳答案

我假设您正在使用 MVC 包装器,但调用 grid.SaveChanges() 作为脚本的一部分。由于您使用的是内联编辑模式,这意味着您使用的是 Ajax。如果这些假设是正确的,那么当您调用 SaveChanges() 时,将执行包装器中指定的 Controller 操作。如果你挂接到 .Error 事件,你可以执行任何需要执行的脚本(即使这只是设置一个你在脚本的其他部分检查的变量)。看看 Ajax Editing Kendo 网站上的入门部分。您的 Razor 代码将类似于以下内容(其中一些是无关的,我将其从生产代码中提取出来并稍作修改):

@(Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(cols =>
{
cols.Bound(p => p.ColumnA);

})
.Editable(edit => edit.Enabled(true).Mode(GridEditMode.InCell))
.DataSource(ds => ds
.Ajax()
.AutoSync(false)
.Model(model =>
{
model.Id(p => p.ColumnId);
})
// Configure RU -->
.Read(read => read.Action("_MyRead", "MyController").Data("additionalData"))
.Update(update => update.Action("_MyUpdate", "MyController").Data("additionalData"))
//.ServerOperation(false)
.Batch(true)
.Events(events => events
.Error("onError")
)
)
// <-- Configure RU
.Pageable(page => page.PageSizes(new int[] { 10, 25, 50, 100 }).Enabled(true))
.Groupable(group => group.Enabled(true))
.Filterable(filter => filter.Enabled(true).Extra(false))
.Sortable(sort => sort.Enabled(true).SortMode(GridSortMode.SingleColumn).AllowUnsort(true))
.Navigatable(nav => nav.Enabled(true))
.Resizable(resizing => resizing.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
)

然后您的 onError 脚本将如下所示:

function onError(e, status) {
if (e.errors) {
var message = "The following errors have occurred and changes will be discarded:\n";

$.each(e.errors, function (key, value) {
if (value.errors) {
message += value.errors.join("\n");
}
});

alert(message);
var grid = $("#Grid").data("kendoGrid");
grid.cancelChanges();
}
}

关于kendo-ui - 如何确定在 javascript 中调用 (Kendo) grid.SaveChanges() 后是否存在验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355805/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com