Extjs 存储同步:许多删除,一些失败

Extjs 存储同步:许多删除,一些失败,extjs,Extjs,我有一个存储,用户可以通过一次destroy操作删除多个记录 现在,其中一些记录被锁定在数据库中(因为其他人正在处理这些记录),因此无法删除。服务器如何告知前端Id为a、b、c的记录删除成功,但Id为x、y、z的记录无法删除,应移回存储区并显示在网格中 在sync()之后,ExtJS存储应该知道哪些记录在服务器端被真正删除了,哪些没有被删除。我认为这个问题没有简单的解决方案。我选择了以下解决方法: 记录现在有一个默认设置为false的“IsDeleted”标志: fields:[{ ..

我有一个存储,用户可以通过一次
destroy
操作删除多个记录

现在,其中一些记录被锁定在数据库中(因为其他人正在处理这些记录),因此无法删除。服务器如何告知前端Id为a、b、c的记录删除成功,但Id为x、y、z的记录无法删除,应移回存储区并显示在网格中


sync()
之后,ExtJS存储应该知道哪些记录在服务器端被真正删除了,哪些没有被删除。

我认为这个问题没有简单的解决方案。我选择了以下解决方法:

记录现在有一个默认设置为
false
的“IsDeleted”标志:

fields:[{
    ...
},{
    name: 'IsDeleted'
    type: 'bool',
    defaultValue: false
存储区有一个过滤器,用于隐藏标记设置为
true
的条目:

filters:[{
    property:'IsDeleted',
    value:false
}]
当用户选择删除时,我不会从存储中删除条目,而是将这些条目的
IsDeleted
标志设置为
true
。过滤器使用户认为条目已被删除


当存储同步时,它执行
更新
操作,而不是
销毁
操作。因此,API的更新端点必须删除
IsDeleted
作为
true
传输的所有条目。如果无法从数据库中删除条目,则返回给客户机的相应json将被
IsDeleted
设置为
false
,以便前端知道删除该条目失败。

您的商店是由ajax驱动的吗?表示每次调用ajax请求更新自身时?@Alexander在同步中,您可以使用params
store.sync({callback:function(records,operation,success){},success:function(batch,options){},failure:function(batch,options){})我不确定,但可能有什么。