我有一个EditorGridPanel
带有工具栏的按钮来添加新记录。除了一种情况外,一切正常。当我尝试插入数据库中已经存在的记录时,服务器发回:
{"success":false,"message":"already exists","data":{}}
但grid
会创建一个标有红色三角形的新行。如果在那之后我尝试插入一条新记录(即使它在数据库中不存在),那么在服务器端一切正常,但我在 firebug 中得到一个“未捕获的异常”。它说:
'uncaught exception: Ext.data.DataReader: #realize was called with invalid remote-data. Please see the docs for DataReader#realize and review your DataReader configuration.'
这是为什么?
编辑 我发现:
当我尝试插入新记录时,我使用插入方法将带有参数的发布请求发送data
到服务器(编码为真,列表为真):
data [{"Name":"123"}]
它从服务器获取:
{"success":true,"data":{"PositionId":"eef1d9f3-9fdf-4b87-9f6c-ef42231f4fed","Name":"123"}}
之后我尝试创建一个具有相同名称的项目:
data [{"Name":"123"}]
所以我得到:
{"success":false,"message":"already exists","data":{}}
从服务器。
下次我尝试创建正确的项目时,商店会发送包含 2 个项目的数组
data [{"Name":"1234"},{"Name":"123"}]
但服务器只创建第一个(最新的)项目并发回:
{"success":true,"data":{"PositionId":"1ff05c7f-d5fc-41cd-81f3-faabc225b2a6","Name":"1234"}}
因此可能会发生错误,因为商店要求服务器创建 2 个项目,但只有一个被发回。
那么如何处理呢?是否可以让商店不再发送失败项目的请求?