gpt4 book ai didi

kendo-ui - 为什么在调用options.error函数时,KendoUI Grid为什么不回滚删除?

转载 作者:行者123 更新时间:2023-12-04 05:13:10 25 4
gpt4 key购买 nike

我在这里摆了一个 fiddle 来演示这个问题。

http://jsfiddle.net/codeowl/fmzay/1/

只是删除一条记录,当我从destroy函数内部调用options.error时,它应该回滚删除。

为什么网格不回滚?

问候,

史考特

标记:

<div id="KendoGrid"></div>

JS:
var _data = [
{ Users_ID: 1, Users_FullName: 'Bob Smith', Users_Role: 'Administrator' },
{ Users_ID: 2, Users_FullName: 'Barry Baker', Users_Role: 'Viewer' },
{ Users_ID: 3, Users_FullName: 'Bill Cow', Users_Role: 'Editor' },
{ Users_ID: 4, Users_FullName: 'Boris Brick', Users_Role: 'Administrator' }
],
_dataSource = new kendo.data.DataSource({
data: _data,
destroy: function (options) {
options.error(new Error('Error Deleting User'));
}
});

$('#KendoGrid').kendoGrid({
dataSource: _dataSource,
columns: [
{ field: "Users_FullName", title: "Full Name" },
{ field: "Users_Role", title: "Role", width: "130px" },
{ command: ["edit", "destroy"], title: "&nbsp;", width: "180px" }
],
toolbar: ['create'],
editable: 'popup'
});

最佳答案

用信号通知错误是不够的。可以说,删除记录时出错是不够的,因为KendoUI不知道记录是否实际上已在服务器中删除,并且答复是产生错误的记录。因此,KendoUI方法是一种保守的方法:您必须决定要做什么并明确地说出它:

因此,您应该做的是添加一个 error 处理函数,该函数在网格中调用 cancelChanges

该代码将是:

_dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
options.success(_data);
console.log('Read Event Has Been Raised');
},
destroy: function (options) {
options.error(new Error('Error Deleting User'));
console.log('Destroy Event Has Been Raised');
}
},
schema: {
model: {
id: "Users_ID",
fields: {
Users_ID: { editable: false, nullable: true },
Users_FullName: { type: "string", validation: { required: true } },
Users_Role: { type: "string", validation: { required: true } }
}
}
},
error: function(a) {
$('#KendoGrid').data("kendoGrid").cancelChanges();
}
});

和更新的JSFiddle在这里: http://jsfiddle.net/OnaBai/fmzay/3

关于kendo-ui - 为什么在调用options.error函数时,KendoUI Grid为什么不回滚删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536665/

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