在网上甚至在这里举几个例子之后,我接近在返回服务器错误后保持弹出编辑器打开。
实际上正在调用事件(错误和数据绑定),但在单击更新后执行e.PreventDefault()之后,窗口始终保持关闭状态。伙计们好吗? (感谢)
dsBranches = new kendo.data.DataSource({
error: function (arg) {
var _grid = $("#branchesGrid").data("kendoGrid");
try {
_grid.one("dataBinding", function (e) {
e.preventDefault();
});
}
catch (ee){};
},
transport: {
read: {
url: "admin/branch/getBranches",
dataType: "json"
},
update: {
url: "admin/branch/updatetBranches",
contentType: "application/json",
dataType: "json",
type: "POST"
},
parameterMap: function (data, operation) {
if (operation != "read") {
return kendo.stringify(data);
}
else {
return kendo.stringify(data);
}
}
},
schema: {
errors: "error",
model: {
id: "Id",
fields: {
Name: { type: "string", validation: { required: { message: "Name is empty" } } },
}
},
答案 0 :(得分:0)
似乎在将dataBinding绑定到匿名函数时,它只会被调用。但是,在编辑器上单击更新会触发一些其他操作(重新绑定(再多次2次),同步)。出于这个原因,我决定继续捕获网格上的dataBinding事件,并在出现错误时检查标志。这将为稍后可能发生的任何其他级联触发器发出preventDefault。
gridBranches = $('#branchesGrid').kendoGrid({
dataBinding: function (e) {
if (editHasErrors)
{
e.preventDefault();
editHasErrors=0;
}
},