我需要让用户在网格中添加新行。 用户还可以更新一行或多行。
这样做的最佳方式是什么?
我有tried使用RESTful Store Example,但无法使用php处理REST发布。
单击添加记录按钮时,它会触发POST两次(一次点击,一次按下更新)。
此外,即使在发布到数据库之后,也会对更新进行标记。
谢谢。
答案 0 :(得分:3)
您应该密切关注Row Editor演示中的代码。请注意,他们将事件侦听器添加到“添加”,“更新”和“删除”事件(在本例中)称为商店的功能。
不确定您的POST来自何处(因为您尚未发布任何代码)。基本上你会在商店的“更新”事件上设置一个监听器。所有编辑都在本地进行,只影响您的本地“商店”对象,直到您另有说法。通过将事件侦听器附加到商店的“更新”事件,您可以让它处理将数据发回服务器,如果记录实际更改if(record.dirty)
。 “Store”接收“update”事件,RowEditor收到“afteredit”事件。至于更改标记,请仔细查看“Store”对象的commitChanges()方法。
答案 1 :(得分:1)
我最近也遇到了同样的问题(即使响应很干净,记录仍然标记为脏)。我可能会为您提供解决方案。我正在为带内JsonReader定义metaData,并没有设置successProperty,做出了一个可怕的假设,它会坚持默认的“成功”。一旦我提供了这一切,所有的魔法开始工作。我的建议是重新检查JsonReader的配置并仔细检查发送它的数据类型。读者对它的回归非常挑剔。你需要定义idProperty,root,successProperty等。
FWIW,它确实抛出异常,但我从未在Firebug的控制台中看到它。我不得不经历艰难的任务,踩过Ext的代码来找到这个问题。
答案 2 :(得分:1)
双重POST和记录保持脏是同样的问题。
在网格中修改某些内容后,修改后的记录列表将发送到服务器。您必须修改它们并返回它们,这些返回的值(与商店中的当前值进行比较?和)在商店中更新并标记为非脏。 所以我认为问题在于你从服务器返回的值。
您必须注意以下事项:格式问题(响应结构,root属性,...),以不同顺序列出的记录,没有id的记录(或未正确设置的id属性)且成功未设置为true