将新记录添加到启用了自动同步的存储后,开始使用rowediting进行编辑

时间:2014-05-02 05:38:14

标签: extjs extjs4 extjs4.2

我们认为在控制器中使用这些行很简单

store.on('write',function(s,o){ editor.startEdit(record, 0); },me,{ single:true });
store.insert(0,record);

但它不起作用。含义;记录得到保存,没有出现错误,但划线没有开始。

我们对缓冲商店进行了略微修改,允许我们使用它执行CRUD操作。这样做会打开编辑器插件。

那么在插入的记录成功写入服务器之后,我们怎样才能自动开始编辑一行(最好先滚动到它 - see this question)?

2 个答案:

答案 0 :(得分:3)

您可能遇到一个计时问题,即您的行仍然具有模型创建的autoId,但尚未使用服务器端提供的新ID进行更新。由于您的模型已经更新,编辑器无法找到您要编辑的行并将中止。

尝试使用Ext.Function.defer

致电编辑

值得一试。

答案 1 :(得分:0)

要滚动到新添加的行,您必须在网格focusRow上调用view

myGrid.getView().focusRow(row)有关详细信息,请参阅http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.view.Table-method-focusRow

您商店的batchUpdateMode是什么?我认为仅当writebatchUpdateMode(默认值)时才会触发operation事件。否则,您可以收听datachanged事件。

希望这适合你。